175
|
cchampion · 技术社区 · 14 年前 |
1
143
一般来说
运行时异常
是
例外情况
这可以通过编程来阻止。例如
编辑
:现在人们喜欢
|
2
156
在爪哇中,有两种类型的异常:检查异常和未检查异常。检查的异常必须由代码显式处理,而未检查的异常不需要显式处理。 对于选中的异常,必须在可能引发异常的代码周围放置try/catch块,或者向该方法添加“throws”子句,以指示该方法可能引发此类异常(必须在调用类或更高级别中处理)。 从“exception”派生的任何异常都是选中的异常,而从runtimeexception派生的类是未选中的。运行时异常不需要由调用代码显式处理。 |
3
77
在看两者的区别之前
所有异常都来自
所有从
因此,编译器强制您处理的所有异常都是直接从
下面是一些直接已知的 RuntimeException .
|
4
39
检查异常,不检查运行时异常。 选中意味着编译器要求您处理catch中的异常,或声明您的方法为抛出该异常(或其超类之一)。 通常,如果API的调用方希望处理异常,则抛出选中的异常;如果调用方通常无法处理异常,则抛出未选中的异常,例如某个参数出现错误,即编程错误。 |
5
15
运行时异常类(运行时异常及其子类)不受编译时检查的限制,因为编译器无法建立运行时异常不能发生的机制。(来自JLS)。 在您设计的类中,您应该将 例外 并抛出 它是任何特殊情况的信号。这样做,您将显式地向 你的类的客户使用你的类可能抛出异常,他们必须 采取措施处理这些特殊情况。 下面的代码片段解释了这一点:
在上面的类定义中
过程
方法
方法
上面的类定义将影响使用 过程 上课也一样。
呼叫
|
6
9
Proper use of RuntimeException? 从 Unchecked Exceptions -- The Controversy :
注意,未经检查的异常是从
为什么扔
|
7
4
来自Oracle文档:
运行时异常表示由 程序设计问题 因此,不能合理地期望api客户端代码从它们恢复或以任何方式处理它们。 运行时异常类似于“无效使用API的异常”运行时异常的示例:illegalStateException、negativeArraySizeException、nullPointerException 除了例外,您必须显式地捕获它,因为您仍然可以执行一些恢复操作。异常的例子有:IOException、TimeoutException、PrintException… |
8
4
简单地说,如果您的客户机/用户可以从异常中恢复,那么将其设置为 选中的 例外 ,如果您的客户端无法从异常中恢复,请执行以下操作 未检查的 运行期异常 . 例如,RuntimeException是一个编程错误,就像被零除一样,除了程序员自己,没有用户可以对此做任何事情,那么它就是 运行期异常 . |
9
3
RuntimeException是Exception类的子类 这是异常类的许多子类之一。RunTimeExtExchange是Java虚拟机正常运行期间可以抛出的那些异常的超类。方法不需要在其throws子句中声明runtimeexception的任何子类,这些子类可能在方法执行期间抛出,但未被捕获。 神职人员是 java.lang.Object对象 ---java.lang.Throwable语言 ----java.lang.exception异常 ——————————————————————————————————java.lang.RuntimeException |
10
0
异常是处理应用程序流中意外事件的好方法。编译器未选中RuntimeException,但您可能更喜欢使用扩展Exception类的异常来控制API客户端的行为,因为它们需要捕获错误才能进行编译。也形成了良好的文档。 如果要实现干净的接口,请使用继承将应用程序具有的不同类型的异常子类化,然后公开父异常。 |
11
0
有两种类型的异常,如果遇到这种异常,可以从选中的异常中恢复。运行时异常是不可恢复的,运行时异常是编程错误,程序员在编写代码时应加以处理,继续执行可能会导致错误的结果。运行时异常与precondition ex冲突。您有一个大小为10的数组,并且您正试图访问第11个元素,它将抛出arrayindexoutofboundexception |
12
0
|