Nir*_*ond 191
错误"表示合理的应用程序不应该试图捕获的严重问题."
而
"异常"表示合理的应用程序可能想要捕获的条件.
错误以及RuntimeException&他们的子类是unchecked例外.所有其他异常类都是checked例外.
检查的异常通常是程序可以恢复的异常,并且以编程方式从这些异常中恢复可能是个好主意.示例包括FileNotFoundException,ParseException等等.程序员应该使用try-catch块检查这些异常,或者将其返回给调用者
另一方面,我们有未经检查的例外情况.这些是如果一切都井然有序可能不会发生的例外情况,但确实会发生.示例包括ArrayIndexOutOfBoundException,ClassCastException等等.许多应用程序将使用try-catch或throws子句用于RuntimeExceptions其子类,但从语言角度来看,不需要这样做.请注意,RuntimeException通常可以从a恢复,但设计类/异常的人认为最终程序员不必检查此类异常.
错误也是未经检查的异常,程序员不需要对这些做任何事情.事实上,try-catch为错误使用一个子句是个坏主意.大多数情况下,无法从错误中恢复,应该允许程序终止.实例包括OutOfMemoryError,StackOverflowError等
请注意,虽然错误是未经检查的异常,但我们不应该尝试处理它们,但可以RuntimeExceptions在代码中处理(也是未经检查的异常).检查的异常应该由代码处理.
Jug*_*hah 17
Error并且Exception两者都是扩展的Throwable,但主要Error是JVM在一个致命的场景中抛出,并且应用程序无法从该错误中恢复.例如OutOfMemoryError.
虽然应用程序甚至可以引发Error但它不是一个好的实践,而应用程序应该使用已检查的异常可恢复条件和运行时异常来编程错误.
fat*_*zzy 12
错误是大多数时候你无法处理的错误.
例外是为了让您有机会使用它.喜欢尝试其他东西或写入日志.
try{
//connect to database 1
}
catch(DatabaseConnctionException err){
//connect to database 2
//write the err to log
}
Run Code Online (Sandbox Code Playgroud)
通常错误是没有人可以控制或猜测何时发生的错误,可以猜测和处理异常。在Java中,Exception和Error是Throwable的子类。它是根据程序控制来区分的。诸如OutOfMemory Error之类的错误,程序员无法猜测并可以处理它。它依赖于体系结构,操作系统和服务器配置而动态依赖。异常程序员可以处理它并避免应用程序的异常行为,例如,如果您的代码正在寻找一个不可用的文件,则抛出IOException,这样的实例程序员可以猜测并可以处理它。
| 归档时间: |
|
| 查看次数: |
245392 次 |
| 最近记录: |