精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (17)
|
|
---|---|
作者 | 正文 |
发表时间:2011-02-12
在处理抛出异常的方法时,我们可以采用try/catch进行捕捉 或者使用throws抛出, 但具体怎么使用, 什么时候进行try/catch,什么时候进行throws? 现通过代码简要总结. 实验1 :使用try/catch 在main方法中对methord1()抛出的异常进行捕捉 import java.io.File; import java.io.IOException; public class ExceptionTest { public static void main(String[] args) { try { methord1(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } methord2(); } private static void methord1() throws IOException { // TODO Auto-generated method stub System.out.println("methord1 "); File f = new File(""); f.createNewFile(); System.out.println("methord1111 "); } private static void methord2() { // TODO Auto-generated method stub System.out.println("methord2 "); } } ,结果为: methord1 java.io.IOException: 系统找不到指定的路径。 at java.io.WinNTFileSystem.createFileExclusively(Native Method) at java.io.File.createNewFile(File.java:850) at com.bryant.test.ExceptionTest.methord1(ExceptionTest.java:21) at com.bryant.test.ExceptionTest.main(ExceptionTest.java:10) methord2 methord2 方法也执行.
实验2.使用throws 修改main方法为throws methord1()抛出的异常: public static void main(String[] args) throws IOException { methord1(); methord2(); }
结果为: methord1 Exception in thread "main" java.io.IOException: 系统找不到指定的路径。 at java.io.WinNTFileSystem.createFileExclusively(Native Method) at java.io.File.createNewFile(File.java:850) at com.bryant.test.ExceptionTest.methord1(ExceptionTest.java:17) at com.bryant.test.ExceptionTest.main(ExceptionTest.java:10) 方法methord2 没有执行. 由此总结: 当出现的异常使程序后面无法执行时,抛出异常,结束程序.使用throws
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-02-14
这个……本来就是两个东西一个抛出一个捕获
|
|
返回顶楼 | |
发表时间:2011-02-15
throws抛给上一层处理,try/catch捕获,是出现异常时在catch中做些处理,并不是中止程序,也没默认return;
|
|
返回顶楼 | |
发表时间:2011-02-15
新手贴???
|
|
返回顶楼 | |
发表时间:2011-02-15
我无语了!
try { methord1(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } |
|
返回顶楼 | |
发表时间:2011-02-15
elliotann 写道 throws抛给上一层处理,try/catch捕获,是出现异常时在catch中做些处理,并不是中止程序,也没默认return;
谢谢你的回复. 我表述有问题 ,应该是当使用throw 时,程序跳出本方法执行,throw后面的代码讲不执行. 你说的 return 指什么? |
|
返回顶楼 | |
发表时间:2011-02-15
smilebug 写道 这个……本来就是两个东西一个抛出一个捕获
谢谢你的回复. 我想说明的是何时使用抛出 ,何时捕获. |
|
返回顶楼 | |
发表时间:2011-02-15
freish 写道 新手贴???
是, 我刚接触实际的项目开发. 请多指教. |
|
返回顶楼 | |
发表时间:2011-02-15
aflyer 写道 我无语了!
try { methord1(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 谢谢指教. 我随手写的代码,只是想说明一下问题,代码命名让你见笑了 |
|
返回顶楼 | |
发表时间:2011-02-15
慢慢来 学技术就得脸大 怎么可能每次都对呢
|
|
返回顶楼 | |