![]() |
1
6
java.lang包定义了以下不是运行时异常的标准异常类:
|
![]() |
2
12
是的,有 三 种类。 已检查异常编译器会让您知道,由于环境中最可能发生的故障,何时可以抛出它们。 如果程序可以对它们做些什么,那么应该捕获它们,否则最好让它们离开。 他们中的大多数继承自
或来自
虽然从前者继承更好。 例如:
表示发生了某种类型的I/O异常。此类是由失败或中断的I/O操作产生的一般异常类。 错误这些是特殊类型的例外。他们 不应该被抓住 因为当它们发生的时候,就意味着真的很糟糕的事情发生了。 他们都继承自
例如:
当Java虚拟机无法分配对象时抛出,因为它内存不足,垃圾回收器无法再提供内存。 或
当应用程序循环过深而发生堆栈溢出时引发。 运行时异常用于识别程序员故障,而不是资源故障。 在编码时可以“正常”避免运行时异常。如果你有一个很可能你做错了什么。 有时会捕获运行时异常,但是,除非您确切知道自己在做什么和 为什么? 抓住他们是一种不好的做法(同样,除非这正是你需要的) 他们继承自
例如
引发以指示已使用非法索引访问数组。索引为负或大于或等于数组的大小 或
当应用程序尝试在需要对象的情况下使用空值时引发 关于最后两个, 大多数 有时,可以通过仔细编程和了解程序的状态(这个数组有5个元素吗?为什么我要尝试进入-1或6。此引用是否为空?为什么要调用null.ToString()) 尽管我和那些声称所有的NPE都应该被抓获的人发生过争执。我能说什么呢? |
![]() |
3
2
基本上在Java(反对.NET)中,有两种类型的异常:
我可以推荐下列的吗 O'Reilly On Java 例外条款。 |