Java异常另外两个关键字:throw,throws

  • 异常关键字
    try…catch是一种积极处理异常的方式
    throws是一种消极处理异常的方式

throws:如果代码发生错误,就把这个错误异常类型声明在方法后面,谁调用,谁处理
注意:throws代表有可能会抛出异常
注意:如果最后一层是main方法,记着try…catch…,否则异常就传到JVM中了,后面的代码也不能正常执行了 注意:异常可以向上传递
注意:我们可以一次性向外声明多个编译时异常,谁调用,谁处理,类型,顺序,个数要一致
注意:向外声明的异常类型越具体,对调用者越好,很明确异常类型,可以快速的处理异常
注意:如果一个方法向外声明了一个异常,那么调用者必须声明一个大于等于这个异常的类型,反之则不行

throw:在方法体中抛出一个异常对象,表示一定会抛出异常
在开发中,有时候,我们需要手动抛出一个异常对象,使得这个代码的走向,去另外一个地方
注意:throw表示一定会抛出异常,无论代码对错
注意:throw抛出的是一个异常对象

面试题:throws和throw的区别?

1:位置
throws出现在方法头
而throw出现在方法体。
2:抛出区别
throws表示出现异常的一种可能性,并不一定会发生这些异常;声明的是一个异常类型
throw则是抛出了异常,执行throw则一定抛出了某种异常对象。
3 处理异常方式
两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,
但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。

编程习惯
1:在写程序时,对可能会出现异常的部分通常要用try{…}catch{…}去捕捉它并对它进行处理;
2 :用try{…}catch{…}捕捉了异常之后一定要对在catch{…}中对其进行处理,那怕是最简单的一句输出语句,或栈输入e.printStackTrace();
3: 如果是捕捉IO输入输出流中的异常,一定要在try{…}catch{…}后加finally{…}把输入输出流关闭;
4:如果在函数体内用throw抛出了某种异常,最好要在函数名中加throws抛异常声明,然后交给调用它的上层函数进行处理。

既要制造异常,还要处理异常

public static void show(String url){
	
	
	try {
		throw new NullPointerException();
	} catch (Exception e) {
	 
		e.printStackTrace();
	}
	System.out.println("你好吗");
	/*if(url.equals("http://www.baidu.com")){
		//request.url("http://www.baidu.com"); //正确跳转
	}else{
		try {
			throw new Exception(url);
		} catch (Exception e) {
		//	request.url("http://www.error.com");
			e.printStackTrace();
		} 
	}*/
	
	//System.out.println(10/2);//正确代码
	
	//throw new NullPointerException(); //异常代码
	//return;
	//System.out.println("123123"); //异常后面的代码
	
}
public static void main(String[] args) throws Exception {
	show("http://www.baidu.com");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值