1.Exception是程序正常运行过程中预料到可能会出现的错误,并且应该被捕获并进行相应的处理,是一种异常现象。
2.Error是正常情况下不可能发生的错误,Error会导致JVM处于不可恢复的状态,不需要捕获处理,比如说OutOfMemoryError
3.Exception分为运行时异常和编译时异常
编译时异常:表示当前调用的方法内部抛出了一个异常,所以编译器检测到这段代码运行时可能会出现异常,所以要求我们必须对异常进行相应的处理,可以捕获异常或者抛给上层调用方。
运行时异常:表示在运行时出现异常,常见的运行时异常包括:空指针异常,数组越界异常,数字转换异常和算数异常等。
4.捕获异常时应遵循的原则:
1.尽量捕获比较详细的异常,而不是使用Exception一起捕获;
2.当本模块不知道捕获之后该怎么处理异常时,可以将其抛给上层模块。上层模块拥有更多的业务逻辑,可以进行更好的处理。
3.捕获异常之后应该有日志记录,方便排查。
4.不要使用很大的一个try/catch包住整个代码,不利于问题的排查。