是的,单个try块可以有多个catch块。
以下Java程序包含一个数字数组(显示)。从用户那里,它接受此数组中的两个位置,然后将第一个位置的数字除以第二个位置的数字。
输入值时-
如果选择的位置不在显示的数组中,则抛出ArrayIndexOutOfBoundsException
如果选择0作为分母,则抛出ArithmeticException。
在此程序中,我们使用两个不同的catch块处理了所有可能的异常。
import java.util.Arrays; import java.util.Scanner; public class MultipleCatchBlocks { public static void main(String [] args) { Scanner sc = new Scanner(System.in); int[] arr = {10, 20, 30, 2, 0, 8}; System.out.println("Enter 3 integer values one by one: "); System.out.println("Array: "+Arrays.toString(arr)); System.out.println("Choose numerator and denominator(not 0) from this array (enter positions 0 to 5)"); int a = sc.nextInt(); int b = sc.nextInt(); try { int result = (arr[a])/(arr[b]); System.out.println("Result of "+arr[a]+"/"+arr[b]+": "+result); } catch(ArrayIndexOutOfBoundsException e) { System.out.println("Warning: You have chosen a position which is not in the array"); } catch(ArithmeticException e) { System.out.println("Warning: You cannot divide an number with 0"); } } }
Enter 3 integer values one by one: Array: [10, 20, 30, 2, 0, 8] Choose numerator and denominator (not 0) from this array (enter positions 0 to 5) 2 8 Warning: You have chosen a position which is not in the array
Enter 3 integer values one by one: Array: [10, 20, 30, 2, 0, 8] Choose numerator and denominator(not 0) from this array (enter positions 0 to 5) 1 4 Warning: You cannot divide an number with 0
本文向大家介绍我们可以在Java中的另一个try catch块中声明一个try catch块吗?,包括了我们可以在Java中的另一个try catch块中声明一个try catch块吗?的使用技巧和注意事项,需要的朋友参考一下 是的,我们可以 在另一个try-catch块中声明一个try-catch块,这称为嵌套try-catch块。 嵌套的尝试捕获块 如果一个内部的try statemen牛逼没
问题内容: 我最初从大学开始编程,然后学习了vb.net。现在,我决定转向Java并进行一些查询。在vb中,try catch语句的布局如下 但是在Java网站(https://docs.oracle.com/javase/tutorial/essential/exceptions/putItTogether.html)中,我发现在Java中,您使用了两个陷阱,如下所示: 我希望有人能够解释为什么
问题内容: 我正在审查一些新代码。该程序仅具有try和finally块。由于不包含catch块,如果try块遇到异常或任何可抛出的异常,它将如何工作?它是否直接进入了finally块? 问题答案: 如果try块中的任何代码都可以引发已检查的异常,则它必须出现在方法签名的throws子句中。如果引发了未经检查的异常,则该异常会冒泡退出方法。 无论是否引发异常,都始终执行finally块。
本文向大家介绍是否可以在单个catch块中捕获多个Java异常?,包括了是否可以在单个catch块中捕获多个Java异常?的使用技巧和注意事项,需要的朋友参考一下 例外是程序执行期间发生的问题(运行时错误)。发生异常时,程序会突然终止,并且生成异常的行之后的代码将永远不会执行。 代码中有多个异常 在Java 7之前,只要我们有一个可能会生成多个异常的代码,并且如果您需要专门处理该代码,则应在一次尝
在传递给的方法的lambda中,我验证是否使用预期值调用了方法: 由于方法抛出一个,我被迫在lambda内部的调用周围添加一个无用的try/catch块。这是不必要的冗长。 我怎么能避免呢?
问题内容: 我需要捕获两个异常,因为它们需要相同的处理逻辑。我想做类似的事情: 是否可以避免在每个catch块中重复处理程序代码? 问题答案: Java 7及更高版本 从Java 7开始,支持多异常捕获。 语法为: 的静态类型是列出的异常中最特殊的通用超类型。有一个很好的功能,如果您将其重新抛出,编译器就会知道只能抛出列出的异常之一。 Java 6及更早版本 在Java 7之前,有多种方法可以解决