java 异常

在处理抛出异常的方法时,我们可以采用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
当程序出现异常,不影响后续操作时,捕捉异常,后续程序将继续执行.使用try/catch

应该是当使用throw 时,程序跳出本方法执行,throw后面的代码不执行. 

你可能感兴趣的:(java)