Java中Exception与RuntimeException有什么异同
4个回答
展开全部
说到Exception和RuntimeException的区别,首先看一段代码,如下:
public class TestRuntimeException {
public static void main(String[] args) {
String str="123";
int temp=Integer.parseInt(str);
System.out.println(temp*temp);
}
}
我们来看看parseInt方法的源代码如下:
public static int parseInt(String s) throws NumberFormatException {
return parseInt(s,10);
}
我们发现这个方法中抛出了NumberFormatException异常,但是在上面的代码中我们没有找到try...catch来处理,这是为什么呢。按照我们异常处理的知识,如果一个方法通过throws抛出了异常,那么可以在抛出异常的方法中不适用try...catch,但是在调用这个方法的地方必须有try...catch来处理。可以发现NumberFormatException是RuntimeException的子类,那么这就需要我们清楚Exception和RuntimeException的概念:
Exception:在程序中必须使用try...catch进行处理。
RuntimeException:可以不使用try...catch进行处理,但是如果有异常产生,则异常将由JVM进行处理。
对于RuntimeException的子类最好也使用异常处理机制。虽然RuntimeException的异常可以不使用try...catch进行处理,但是如果一旦发生异常,则肯定会导致程序中断执行,所以,为了保证程序再出错后依然可以执行,在开发代码时最好使用try...catch的异常处理机制进行处理。
public class TestRuntimeException {
public static void main(String[] args) {
String str="123";
int temp=Integer.parseInt(str);
System.out.println(temp*temp);
}
}
我们来看看parseInt方法的源代码如下:
public static int parseInt(String s) throws NumberFormatException {
return parseInt(s,10);
}
我们发现这个方法中抛出了NumberFormatException异常,但是在上面的代码中我们没有找到try...catch来处理,这是为什么呢。按照我们异常处理的知识,如果一个方法通过throws抛出了异常,那么可以在抛出异常的方法中不适用try...catch,但是在调用这个方法的地方必须有try...catch来处理。可以发现NumberFormatException是RuntimeException的子类,那么这就需要我们清楚Exception和RuntimeException的概念:
Exception:在程序中必须使用try...catch进行处理。
RuntimeException:可以不使用try...catch进行处理,但是如果有异常产生,则异常将由JVM进行处理。
对于RuntimeException的子类最好也使用异常处理机制。虽然RuntimeException的异常可以不使用try...catch进行处理,但是如果一旦发生异常,则肯定会导致程序中断执行,所以,为了保证程序再出错后依然可以执行,在开发代码时最好使用try...catch的异常处理机制进行处理。
2013-08-30
展开全部
Exception 就是根异常 RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。 可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。 可以去百度一下这个 JDK6API中文参考[沈东良] 有详解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-30
展开全部
发现几个关于异常的问题都你问的~我简单回答哈~异常 大体分为 不可查异常 可查异常 runtimeException三类~异常都继承throwable这个类~ 下面有error和Exception两大类~不可查异常 为 error`是由于系统错误`是无法恢复的`比如~你没显卡`怎么显示图像!是无法恢复的~Exception 下为 可查异常和runtimeException两大类~可查异常是由于环境造成`是捕获处理的重点` 可以恢复的`runtimeException~是由于你程序设计的有漏洞`比如 1/0~的情况~ 正确设计不会出现的` 一般不捕获或处理~ main()方法throws出异常会有jvm 处理~ 其实就是jvm终止你线程~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-30
展开全部
excetion是所有异常的总称。
而runtimeexcetion是具体的某一个异常。
写代码的try{}catch{}语句的时候,如果有多个exception直接抛出一个exception就能将所有的exception抛出了,你也可以将所有的不同exception依依抛出。
而runtimeexcetion是具体的某一个异常。
写代码的try{}catch{}语句的时候,如果有多个exception直接抛出一个exception就能将所有的exception抛出了,你也可以将所有的不同exception依依抛出。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询