分析以下代码,它会显示哪个异常?(异常处理,java)
正确答案是程序有编译错误。我认为分析以下代码,它会显示哪个异常?(异常处理,java),java,exception-handling,Java,Exception Handling,正确答案是程序有编译错误。我认为catch(Exception ex)将捕获所有异常,包括NumberFormatException,是一个通用异常捕获了所有异常 块: class Test { public static void main(String[] args) { try { String s = "5.6"; Integer.parseInt(s); // Cause a NumberFormatException int i =
catch(Exception ex)
将捕获所有异常,包括NumberFormatException
,是一个通用异常捕获了所有异常 块:
class Test {
public static void main(String[] args) {
try {
String s = "5.6";
Integer.parseInt(s); // Cause a NumberFormatException
int i = 0;
int y = 2 / i;
}
catch (Exception ex) {
System.out.println("NumberFormatException");
}
catch (RuntimeException ex) {
System.out.println("RuntimeException");
}
}
}
将捕获所有异常,因为异常类是所有异常的基类
当您捕获
异常
时,您将捕获扩展的所有异常
异常
,所有异常都会这样做。因此,它会产生一个错误,RuntimeException已被捕获那么异常(运行时)与编译时(编译)错误不同。RuntimeException的捕获块不可访问。它已经由catch块为Exception处理,因为RuntimeException
已经是Exception
哦,我明白了,谢谢!我读到我们应该首先处理最具体的异常,但我没有意识到这会导致错误。
catch (Exception ex) {
System.out.println("NumberFormatException");
}