源:http://blog.csdn.net/butcher__/article/details/54837131
评:
java异常匹配有两个重要原则:
异常控制系统会按当前catch控制器的编写顺序来搜索,一旦找到相符的catch控制器,就认为异常已被捕获,不再进行更多的搜索。
catch控制器可以捕获当前异常类以及从它衍生的子类。
根据这两个原则,来做个测试,首先定义BusinessException和LoginException, BusinessException继承Exception, LoginException继承BusinessException。
class BusinessException extends Exception {
//empty
}
class LoginException extends BusinessException {
//empty
}
1
2
3
4
5
6
那么,LoginException只能捕获LoginException, BusinessException可以捕获LoginException和BusinessException, Exception可以捕获LoginException、BusinessException和Exception
Test1 :
try {
throw new LoginException();
} catch (LoginException le) {
System.out.println("LoginException catch");
} catch (BusinessException be) {
System.out.println("BusinessException catch");
} catch (Exception e) {
System.out.println("Exception catch");
}
//运行结果: LoginException catch
1
2
3
4
5
6
7
8
9
10
Test2 :
try {
throw new LoginException();
} catch (BusinessException be) {
System.out.println("BusinessException catch");
} catch (Exception e) {
System.out.println("Exception catch");
}
//运行结果: BusinessException catch
1
2
3
4
5
6
7
8
注意, 在catch控制器编写顺序中, 不要将父类异常位于子类异常之前,编译器会报错。因为永远无法执行到这个子类catch控制器。
分享到:
相关推荐
8. **异常匹配原则**:捕获的异常应与抛出的异常完全匹配或为抛出异常的父类。否则,可能会导致意外的处理逻辑。 9. **返回值可能为null的注释**:允许方法返回null,但需在注释中明确指出可能返回null的情况,提醒...
Java异常处理是编程过程中的重要组成部分,它帮助开发者在程序执行期间识别并处理错误和意外情况。Java异常是程序运行时出现的不正常状态,它们通常由Java虚拟机(JVM)或者Java类库在遇到特定问题时抛出。异常分为...
异常处理基于匹配原则,即异常对象的类型必须与`catch`后面的异常类匹配。`Throwable`是最顶级的异常类,但通常我们只关心`Exception`及其子类,因为它们更具体且与程序逻辑相关。`Error`类通常表示系统级别的错误,...
本教程将深入探讨Java异常处理的基础、原则以及最佳实践。 一、异常的分类 Java中的异常类层次结构主要基于`java.lang.Throwable`类,它有两个主要子类:`Error`和`Exception`。`Error`通常表示系统级的错误,如...
Java异常处理是编程中至关重要的一个环节,它用于在程序运行过程中处理可能出现的错误或异常情况,确保程序的健壮性和稳定性。Java异常处理通过一套结构化的机制来捕获、处理和报告错误,使得程序员可以更有效地管理...
Java异常处理是编程中至关重要的一个部分,它用于处理程序运行时可能出现的错误和异常情况。异常处理机制在Java中是通过一套特定的语法结构来实现的,这使得程序员能够优雅地处理错误,保证程序的健壮性和稳定性。 ...
Java异常处理是编程中至关重要的一个方面,它用于处理程序运行过程中可能出现的错误或异常情况。在Java中,异常是一个对象,它表示程序运行时发生的错误。这些异常可以通过使用特定的关键字和结构来管理和处理。 1....
【JAVA编程中异常处理的方法和技巧研究】 ...通过对Java异常处理机制的深入理解和实践,开发者可以编写出更健壮、更易于维护的代码,有效应对各种运行时可能出现的问题,从而提升软件系统的整体质量和用户体验。
Java提供了丰富的异常体系,包括标准的Java异常类和自定义异常。 1. **算术异常类:ArithmeticException** - 当程序执行了非法的数学运算,如除以零,就会抛出此异常。 2. **空指针异常类:NullPointerException**...
`catch`块根据异常类型进行匹配,只有匹配的异常类型才能被捕获并执行相应的处理代码。 ```java try { // 可能抛出异常的代码 } catch (IOException e) { // 处理IOException } catch (NullPointerException npe)...
这种异常包含了数据库操作中的所有可能错误,如连接问题、语法错误、数据类型不匹配等。 ### 11. 输入输出异常:`IOException` 当进行输入输出操作时出现错误时,会抛出`IOException`。这是一种常见的检查型异常,...
在`catch`块的顺序安排上,Java遵循匹配原则,即子类异常在前,父类异常在后,因为父类异常可以捕获所有子类异常,如果顺序颠倒,编译器会报错。这种设计使得异常处理更加精确,避免了不必要的捕获。 总结来说,...
Java异常处理是编程中至关重要的一个环节,它用于处理程序运行过程中出现的错误或异常情况。异常分为两类:Error和Exception。Error通常是由JVM调用系统底层导致的,例如`OutOfMemoryError`,这类异常通常无法通过...
为了避免这种异常,应确保代码符合封装原则,不要随意更改默认的访问控制级别,并正确使用反射API。 #### 7. `java.lang.IncompatibleClassChangeError` 当类接口的不兼容变化导致方法调用失败时,会抛出`...
- 提供的源码实例展示了如何在实际项目中应用上述原则,包括`GlobalExceptionHandler`类的实现、自定义异常类的设计以及异常处理逻辑的测试。 10. **最佳实践** - 避免在`catch`块中使用`return null`或简单的`...
Java异常处理是编程中至关重要的一个环节,它关乎程序的健壮性和稳定性。在Java中,异常(Exception)是程序运行时出现的错误,这些错误可能导致程序无法正常执行。Java异常处理提供了一种机制,使得程序员可以优雅...
- 如果`try`块内的代码执行过程中抛出异常,并且这个异常与`catch`块中声明的异常类型相匹配,则剩余未执行的`try`块代码会被忽略,而对应的`catch`块将被执行。 - 如果`try`块中抛出的异常没有被任何`catch`块...