检查的异常是编译器要求您以某种方式处理的异常。
在Java中,checked异常是
ThrowableS中的不是
RuntimeException,
Error或它们的一个子类。
Java设计人员认为需要确保程序处理合理可能的异常。一个典型的例子是
IOException。每当程序执行I
/ O *** 作时,都有可能发生故障。磁盘可能已满,文件可能不存在,可能存在权限问题,等等。
因此,Java被设计为使得程序必须以某种方式在语法上处理异常。这可以是catch块,也可以是通过某种方式重新抛出异常。
C#没有检查的异常。他们决定将此问题留给应用程序开发人员(面试)。受检查的异常是有争议的,因为它们会使代码变得冗长,而开发人员有时会使用空的catch块来琐碎地处理它们。此外,可以使用哪种标准库方法引发检查异常。例如,为什么不
File.delete抛出(新的Java
7 API有所不同)
IOException?
Hejlsberg在采访中指出的另一个问题是可版本性。在
throw子句中添加检查后的异常会强制修改和重新编译使用该方法的所有代码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)