黑马程序员技术交流社区
标题:
Java中异常处理求正解
[打印本页]
作者:
龙舌兰
时间:
2011-10-5 11:11
标题:
Java中异常处理求正解
常常听人说为了省事儿,就不捕获异常,将其抛出。这个抛出是怎么一个概念,什么样的过程,请高人讲解下。
还有,再什么情况下定义异常。
作者:
匿名
时间:
2011-10-5 11:20
标题:
Java 异常处理的分类
Java 异常处理的分类
Java 异常可分为可检测异常,非检测异常和自定义异常。
可检测异常
可检测异常经编译器验证,对于声明抛出异常的任何方法,编译器将强制执行处理或声明规则,例如:sqlExecption 这个异常就是一个检测异常。你连接 JDBC 时,不捕捉这个异常,编译器就通不过,不允许编译。
非检测异常
非检测异常不遵循处理或声明规则。在产生此类异常时,不一定非要采取任何适当操作,编译器不会检查是否已解决了这样一个异常。例如:一个数组为 3 个长度,当你使用下标为3时,就会产生数组下标越界异常。这个异常 JVM 不会进行检测,要靠程序员来判断。有两个主要类定义非检测异常:RuntimeException 和 Error。
Error 子类属于非检测异常,因为无法预知它们的产生时间。若 Java 应用程序内存不足,则随时可能出现 OutOfMemoryError;起因一般不是应用程序的特殊调用,而是 JVM 自身的问题。另外,Error 一般表示应用程序无法解决的严重问题。
RuntimeException 类也属于非检测异常,因为普通 JVM 操作引发的运行时异常随时可能发生,此类异常一般是由特定操作引发。但这些操作在 Java 应用程序中会频繁出现。因此,它们不受编译器检查与处理或声明规则的限制。
自定义异常
自定义异常是为了表示应用程序的一些错误类型,为代码可能发生的一个或多个问题提供新含义。可以显示代码多个位置之间的错误的相似性,也可以区分代码运行时可能出现的相似问题的一个或者多个错误,或给出应用程序中一组错误的特定含义。例如,对队列进行操作时,有可能出现两种情况:空队列时试图删除一个元素;满队列时试图添加一个元素。则需要自定义两个异常来处理这两种情况。
Java 异常处理的分类
作者:
匿名
时间:
2011-10-5 12:02
抛出异常,就好比说,是将异常交给别人,而不是自己亲自处理。如果某一函数抛出异常后,其他函数要调用这个函数时,就要处理这个异常,如果不想处理,也可往外抛,交给其他函数处理…就这样,一层一层的…
作者:
匿名
时间:
2011-10-5 12:30
所谓的抛出异常并不是说 不处理这个异常,而是当前层不考虑捕捉异常,通常异常的捕捉,放在业务层等。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2