这是一个在java中面试经常问到的问题。
观察一下代码:
Public class RuntimeException{
public static void main(String args[]){
String str="123"; //定义字符串,全部由数组组成
int temp=Integer.parseInt(str); //将字符串转化为int型
System.out.println(temp*temp); //乘方
}
};
parseInt方法的定义格式:
public static int parseInt(String s,
int radix)
throws NumberFormatException
在此方法中明明使用throws抛出异常,为什么不用处理,编译也能通过。
在java的异常处理机制中:
如果抛出的是Exception类型,则必须使用try....catch处理
如果抛出的是RuntimeException类型,则不是必须使用try....catch处理,一但发生异常之后将由JVM进行处理,但是为了保证程序的健康性,在有可能出现异常的地方还是老实的使用try.....catch进行处理。