日期:2014-05-18  浏览次数:20711 次

java中Exception问题
我们在编程中会遇到一些异常,可以在函数头用throws进行抛出,也可以在函数中用try{}catch(){}进行,这两者之间具体的区别是什么?
例如:(控制台程序)要求从键盘里面输入一个int数据,我们用的是s.nextInt()  (s为Scanner的实例) ,键盘可能输入的不是int数据,这时候肯定是一个异常,要求程序肯定是要一直运行到结束的,这时候该怎么班?用哪个?必须使用try  catch 吗 ?
java Exception java异常

------解决方案--------------------
在方法声明throws表示方法内可能要抛出异常,这时候你可以手动在方法内抛出异常(可以是自己定义的),比如你要认为console输入String是错误的你可以对String parse int 异常进行抛出
然后在外面 或者方法里面进行处理 
try {
System.out.println(Integer.parseInt("abc"));
} catch (NumberFormatException e) {
}
System.out.println("跳过不处理");
}
这样就不会让用户看见错误了!
------解决方案--------------------
检查型异常必须捕获或抛出,否则编译不能通过。  如果抛出那么就是说本方法不做异常处理,由这个方法的调用者处理。
------解决方案--------------------
①throws进行抛出,表示该方法不对此异常进行处理,由调用者处理。
②而try catch是对异常进行捕获。捕获之后对异常进行一系列操作,使之没有异常;或者在捕获异常处理之后,再定义异常将其抛出。
------解决方案--------------------
引用:
①throws进行抛出,表示该方法不对此异常进行处理,由调用者处理。
②而try catch是对异常进行捕获。捕获之后对异常进行一系列操作,使之没有异常;或者在捕获异常处理之后,再定义异常将其抛出。

+1
对于运行时异常,不会强制你去捕获它,直到jvm发现它,自动抛出去
比如你说的NumberFormatException,这种异常你可以throws抛出去,让调用者处理,(在main方法里就直接终止程序运行了),或者使用try catch抓住它,在catch块里处理成你想要的结果
------解决方案--------------------
try catch相当于对if else进行补充
------解决方案--------------------
①throws进行抛出,表示该方法不对此异常进行处理,由调用者处理。
②而try catch是对异常进行捕获。捕获之后对异常进行一系列操作,使之没有异常;或者在捕获异常处理之后,再定义异常将其抛出。

说的有道理啊