java基础-异常机制

异常机制:

异常基本通过以下两种方式来处理:

1. try-catch-finally(一般采用本方式,捕获异常,自己处理)

try {
	InputStream iso=new FileInputStream(new File(" "));
} catch (FileNotFoundException e2) {
	e2.printStackTrace();
}finally{
	System.out.println(“我最终也执行了”);
}

2. throws(不负责任的做法,将异常直接抛出,让别人处理)

public static void NoFile() throws FileNotFoundException{
	InputStream iso=new FileInputStream(new File(" "));
}

throw 异常中断(直接中断程序,后面代码不执行)

	public void setAge(int age) throws AgeEception {
		if (age>=0&&age<150) {
			this.age = age;
		}
		System.out.println("异常之前:"+age);
		throw new AgeEception("年龄赋值有误!!!");
//		System.out.println("异常之后:"+age);       throw抛出异常后   直接中断程序
	}

1、不要试图通过try-catch 控制你的业务逻辑

因为异常会降低代码的可读性和性能,例如一些 null 的判断逻辑、除0的控制等等。

2、异常我们是不希望发生的

jdk 1.7 中对于try的增强

jdk1.7之前

InputStream is = null;
	try {
		 is = new FileInputStream(new File(""));
	} catch (FileNotFoundException e) {
		e.printStackTrace();
	}	finally {
		try {
			if(is!=null){
				is.close();
			}
		} catch (IOException e) {
			try {
				is.close();
			} catch (IOException e1) {
				e1.printStackTrace();
			}
		}
	}

jdk1.7之后

所有需要关闭的流操作都可以放在try后面的()中, 语句用 ; 分隔

try(InputStream iss  =new FileInputStream(new File(""));
			Scanner input = new Scanner(System.in)){
		
		
	}catch(ArithmeticException | IOException e){
		e.printStackTrace();
	}

异常体系结构图:

getMessage()的调用过程:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值