持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,点击查看活动详情
什么是Error?
它发生在系统级别。它是在系统出现异常情况时发生的,而且由于它发生在系统级别,所以它是一个严重的错误。因此,通常必须通过对系统进行更改来处理问题。
什么是Excetpion?
它发生在开发人员实现的逻辑中。可以提前预测和处理异常。
异常类型
异常分为checked Excetpion
和。unchecked exception
,Exception 有很多子类,可以根据 Runtiem Exception 来区分是 Checked 还是 Unchecked。除 Runtime Exception 外的所有类都称为 Checked Exception,而Runtime Exception 及其子类称为 Uncheck Exception。
异常 Checked 和 Unchecked 的区别
CheckedException(非Runtime Exception)
- 必须处理异常
- 可以在编译阶段检查它。
- 当异常发生时,事务处理是无回滚。
- 通常,有
IOException
、SQLException
UncheckedException(Runtime Exception)
- 不要强制显式处理
- 可以在执行阶段检查
- 当异常发生时,事务是可回滚
- 典型示例包括
NullPointerException
、IlegalArgumentException
、IndexOutOfBoundException
、SystemException
如何区分和处理
它们的分类标准是否需要处理
。
如果它是,那么可能导致 Checked Exception 的处理方法,则必须try/catch
通过将逻辑包装或throw
抛出来处理它。
另一方面,Uncheck Exception 不需要显式的异常处理。这种异常是可以避免的,但最常见的原因是开发人员的疏忽。由于它不是在意外情况下发生的异常,因此不需要用逻辑处理它。
而一般情况下,在编译阶段可以明确检查的异常称为已检查,执行过程中特定逻辑发现的异常称为未检查。但是,unchecked 的不同之处在于它会在发生异常时回滚事务。
总结
- Exception(异常):是应用程序中可能的可预测、可恢复问题
- Error(错误) :是表示运行应用程序中较严重问题。