异常处理方式二:throws +异常类型
*1."throws+异常类型"写在方法的声明处,指明此方法执行时,可能出现的异常类型
* 一旦当方法体执行时,出现异常,仍会在异常代码处生成一个异常类的对象,此对象满足throws后异常类型时,就会
* 被抛出,异常代码后续代码将不再执行
* 2.体会:try-catch-finally:真正的将异常处理掉了
* throws的方式只是将异常抛给了方法的调用者,并没有真正的处理异常
*
* 开发中如何选择
* 1.父类没有使用throws,如果子类中抛异常,则子类只能使用try-catch-finally
* 2.层层递进,使用throws(前一个结果是后一个方法的前提)
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; /** * 异常处理方式二:throws +异常类型 *1."throws+异常类型"写在方法的声明处,指明此方法执行时,可能出现的异常类型 * 一旦当方法体执行时,出现异常,仍会在异常代码处生成一个异常类的对象,此对象满足throws后异常类型时,就会 * 被抛出,异常代码后续代码将不再执行 * 2.体会:try-catch-finally:真正的将异常处理掉了 * throws的方式只是将异常抛给了方法的调用者,并没有真正的处理异常 * * 开发中如何选择 * 1.父类没有使用throws,如果子类中抛异常,则子类只能使用try-catch-finally * 2.层层递进,使用throws(前一个结果是后一个方法的前提) * * @author orz */ public class ExceptionTest2 { public void method2() throws IOException { method1(); } public void method1 () throws FileNotFoundException, IOException { File file=new File("hello.txt"); FileInputStream fis=new FileInputStream(file); int data=fis.read(); while (data!=-1) { System.out.println((char)data); data=fis.read(); } fis.close(); } public static void main(String[] args) { ExceptionTest2 t=new ExceptionTest2(); try { t.method2(); } catch (Exception e) { e.printStackTrace(); } } }