import java.io.*; public class ExceptionTest{ public static void main(String args[]) { for(int i = 0; i < 4;i++) { int k; try{ seitch(i){ case 0; int zero =0; k=911/zero; break; case 1; int b[]=null; k=b[0]; break; case 2; int c[]=new int[2]; k=c[9]; break; case3; char ch="abc".charAt(99); break; } } catch(Exceptione){ System.out.println("\nTestcase#"+i+"\n"); System.out.println(e); } } }说明程序运行中总共捕捉了几个异常,并指出每个异常各自属于哪种类型的异常?
时间: 2024-04-28 16:26:07 浏览: 51
这段程序总共捕捉了4个异常。每个异常及其类型如下:
1. 算术异常(ArithmeticException),在第0个case中被捕捉;
2. 空指针异常(NullPointerException),在第1个case中被捕捉;
3. 数组下标越界异常(ArrayIndexOutOfBoundsException),在第2个case中被捕捉;
4. 字符串下标越界异常(StringIndexOutOfBoundsException),在第3个case中被捕捉。
在每个异常被捕获时,程序会输出对应的测试用例编号以及异常信息。
相关问题
public class MyException extends Exception { public MyException(String message) { super(message); } }public class ExceptionTest { public void test() throws MyException { throw new MyException("This is my custom exception."); } public static void main(String[] args) { ExceptionTest test = new ExceptionTest(); try { test.test(); } catch (MyException e) { System.out.println("Caught MyException: " + e.getMessage()); } } }代码解析
这段代码定义了一个自定义异常类`MyException`,它继承了`Exception`类。`MyException`类有一个构造函数,用于初始化异常信息。
另外,代码中还有一个`ExceptionTest`类,它有一个`test()`方法,该方法抛出了一个`MyException`异常。在`main()`方法中,我们创建了`ExceptionTest`对象,并调用了`test()`方法。由于`test()`方法声明了会抛出`MyException`异常,因此我们需要使用`try-catch`块捕获这个异常。如果`test()`方法抛出了`MyException`异常,`catch`块中的代码会被执行,输出异常信息。
最终运行结果为:
Caught MyException: This is my custom exception.
下面是一段 Java 异常处理机制的测试代码,以下哪一项输出结果是正确的? public class ExceptionTest { public void method() { try { System.out.println("try"); System.exit(0); return; } catch (Exception ex) { System.out.println("异常发生了"); } finally { System.out.println("finally"); } System.out.println("异常处理后续的代码"); } public static void main(String[] args) { ExceptionTest test = new ExceptionTest(); test.method(); } }
输出结果应该是:
try
finally
选项中没有包含这个输出结果的,因此都是错误的。这段代码中,try 块中的代码会被执行,然后程序调用 System.exit(0) 直接退出,因此不会执行 return 语句。由于程序已经退出,catch 块中的代码不会被执行。最后,finally 块中的代码一定会被执行,输出 "finally"。由于 return 语句没有被执行,后面的代码也不会被执行。因此,最终的输出结果只有 "try" 和 "finally"。
阅读全文