throws+异常类型方式处理异常

本文深入探讨了Java中使用throws关键字处理异常的方法,解析了其与try-catch-finally的区别,通过实例说明了如何在方法声明中预示可能抛出的异常类型,以及如何在调用方法时处理这些异常。
摘要由CSDN通过智能技术生成

throws+异常类型方式处理异常:
throws+异常类型写在方法的声明处,指明此方法执行时,可能会抛出的异常类型
一旦方法体执行时出现异常,仍然会在异常代码处生成一个异常类的对象,此对象满足throws后的异常类型时就会被抛出。方法体中出现异常的代码后面的代码不会被执行。

注意:运行时异常(RuntimeException)可以不用try-catch处理,也可以不用throws处理

对比:
throws本质上并没有把异常解决掉,而是抛给了方法的调用者,只是对当前方法来说异常处理结束。
try-catch-finally的方式才是真正把异常解决掉了

package test02;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class ExceptionTest {

	public static void method1() throws FileNotFoundException,IOException{
		File file=new File("hello.txt");//写成throws IOException也行,因为IOException是FileNotFoundException的父类
		//注意如果 FileNotFoundException和IOException的处理方式不一样,一定要分开写
		FileInputStream fis=new FileInputStream(file);
		
		int data=fis.read();
		while(data!=-1) {
			System.out.print((char)data);
			data=fis.read();
		}
		
		fis.close();
	}
	//如果FileNotFoundException和IOException的处理方式一样,直接throws IOException即可
	public static void method2() throws FileNotFoundException,IOException{
		method1();
	}
	//main方法也可以继续throws,抛给虚拟机,但尽量在main就把异常全部干掉,不要throws,用try-catch,处理掉了就不会有问题了
	public static void main(String[] args) {
		try {
			method2();//如果method2只throws了IOException,只用一个catch(IOException e)即可
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}catch(IOException e) {
			e.printStackTrace();
		}
	}
	//假设有一个方法为method3,在方法体中调用method2,用try-catch处理,在main中调用method3,就不用处理异常了
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值