Exception

Exception
 

异常分为两种
	一:典型的错误Error
		方法递归调用发生的StackOverflowError和不断在堆中创建对象出现的OutOfMemoryError
	二:就是现在准备提起的Exception异常,前者Error往往是严重错误无法挽救,而Exception在采取措施后让程序恢复正常
		两者均继承自Throwable

 

 

异常处理方法

积极处理:

方式一

 

    try {
      // 有可能出现异常的代码
 	} catch( 异常类型 ) {
      // 捕获异常后的代码
    }finally{
            释放资源;	
    }

 

注意事项:
	try中代码越少越好
	catch中尽可能都做处理

方式二:

 

        try {
 				可能出现问题的代码 ; 
        }catch(异常名1 变量名1){
  				对异常的处理方式 ;
 		}catch (异常名2 变量名2){
 				对异常的处理方式 ;
 		}finally{
                释放资源;
        }

 

注意事项:
	1:能明确的尽量明确,不要用大的来处理。
	2:如果出现了子父关系,父必须在后面。

方式三:

 

try {
  			可能出现问题的代码 ;
  		}catch(异常名1 | 异常名2 | ....   变量名){
  			对异常的处理方案 ;
  		}

  

注意事项:
	1.异常之间只能是平级关系
	2.处理方式一致

消极处理

在方法声明处添加throws抛出异常,将异常抛给方法调用者处理,当最终异常传给main方法时,异常传到jvm,程序运行结束

分类:

 

未检查异常(uncheck) :
	RuntimeException或它的子类
	Error和它的子类	
	
 检查异常(check) :
	Throwable
	Exception以及他们的子类
     检查异常需要强制地配合try-catch或throws一起使用	 

自定义异常:

	1)子类的重写方法,不能抛出比父类更多的异常(检查异常)
	2)子类的重写方法,可以不抛出异常
	3)尽可能将检查异常转换为未检查异常抛出

finally关键字

try {
     //可能出现问题的代码
  } catch(Exception e) {
   //对异常的处理方法
  } finally {
     // 无论出现异常与否,总会被执行的代码
     }

 

	注意:
		1)如果try,catch以及finally均出现return语句,以finally中的为准
		2)如果try有return,finally只是对返回的变量做修改,那么不影响return结果

	final,finally,finalize的区别:
		final:状态修饰符,用于修饰类,变量和方法
		finally:用于try...catch语句,用于释放资源
		finalize:Object类中的方法,用于回收垃圾
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值