版权声明:尊重原创,码字不易,转载需博主同意。 https://blog.csdn.net/qq_34626097/article/details/83594209
java 异常处理声明抛出异常
2.声明抛出异常是Java中处理异常的第二种方式
- 如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显示地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。
- 在方法声明中用throws语句可以声明抛出异常的列表,throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类。
声明抛出异常举例:
public class TestException2 {
//常规处理方式
public static void main(String[] args) {
TestException2 t = new TestException2();
try {
t.method2();
} catch (IOException e) {
e.printStackTrace();
}
}
//抛,常规不使用该方式处理异常
public static void main(String[] args) throws IOException{//main方法在往上就是JVM了
TestException2 t = new TestException2();
t.method2();
}
public void method2() throws IOException{//往上抛,抛给他的调用者
method1();
}
public void method1() throws FileNotFoundException,IOException{//往上抛,抛给他的调用者
FileImageInputStream fis = new FileImageInputStream(new File("testEception.txt"));
int b;
while((b = fis.read()) != -1) {
System.out.println((char)b);
}
fis.close();
}
}
总结:
- 格式,如:public void method1() throws FileNotFoundException,IOException{}
- 当此方法在内部出现异常的时候,会抛出一个异常类对象,抛给方法的调用者。
- 异常的对象可以逐层向上抛,直至main中,在向上抛的过程中,可以通过try-catch-finally捕获处理。
- 使用的时候一般不会这个逐层往上抛,一般会在某个特定地方进行处理(try-catch),因为如果谁都不处理这个问题的话,程序就停止运行了。
- 核心思想:(try-catch)在项目中使用最多,其在出现异常的时候,就是告诉程序怎么处理,如果一直抛出,那最后要处理的人,很可能就是不知道,当初出现问题是什么?
- 项目中,一般不是编译不过的,不会用异常处理,具体是原因,可以思考一下,回复哩。。