JAVA异常处理的疑问?
先看这样写这样报错很好理解,调用方法的时候需要处理该方法抛出的异常。但是看下面:换个异常抛出,调用的时候就不需要处理该异常了,为什么呢。。。。?除了IndexOutOfB...
先看这样写
这样报错很好理解,调用方法的时候需要处理该方法抛出的异常。但是看下面:
换个异常抛出,调用的时候就不需要处理该异常了,为什么呢。。。。? 除了IndexOutOfBoundsException之外还有InputMismatchException、RuntimeException等等,谁能给我讲下原理~~ 答的好还有加分!!! 展开
这样报错很好理解,调用方法的时候需要处理该方法抛出的异常。但是看下面:
换个异常抛出,调用的时候就不需要处理该异常了,为什么呢。。。。? 除了IndexOutOfBoundsException之外还有InputMismatchException、RuntimeException等等,谁能给我讲下原理~~ 答的好还有加分!!! 展开
3个回答
展开全部
在 Java 中,所有的异常都有一个共同的父类 Throwable(可抛出)。Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性。
Throwable 有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类。
Exception(异常)是应用程序中可能的可预测、可恢复问题。一般大多数异常表示中度到轻度的问题。异常一般是在特定环境下产生的,通
常出现在代码的特定方法和操作中。 SQLException就属于这类。
Error(错误)表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。
Exception 类有一个重要的子类 RuntimeException。RuntimeException 类及其子类表示“JVM
常用操作”引发的错误。例如,若试图使用空值对象引用、除数为零或数组越界,则分别引发运行时异常(NullPointerException、
ArithmeticException)和 ArrayIndexOutOfBoundException。
说的通俗点:
如果异常的父类中有RuntimeException,也即是说是RuntimeException的子类,那么在编码的过程中可以不处理(try-catch操作或者抛出)
其他的异常都得处理(try-catch 或者抛出)
具体参考:
http://www.ibm.com/developerworks/cn/java/j-lo-exception/index.html
Throwable 有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类。
Exception(异常)是应用程序中可能的可预测、可恢复问题。一般大多数异常表示中度到轻度的问题。异常一般是在特定环境下产生的,通
常出现在代码的特定方法和操作中。 SQLException就属于这类。
Error(错误)表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。
Exception 类有一个重要的子类 RuntimeException。RuntimeException 类及其子类表示“JVM
常用操作”引发的错误。例如,若试图使用空值对象引用、除数为零或数组越界,则分别引发运行时异常(NullPointerException、
ArithmeticException)和 ArrayIndexOutOfBoundException。
说的通俗点:
如果异常的父类中有RuntimeException,也即是说是RuntimeException的子类,那么在编码的过程中可以不处理(try-catch操作或者抛出)
其他的异常都得处理(try-catch 或者抛出)
具体参考:
http://www.ibm.com/developerworks/cn/java/j-lo-exception/index.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询