Java异常机制

Java 异常机制

说到Java异常,其实一直以来都没有认真的了解一下,都是在需要的时候进行try catch进行捕获,同时输出其信息,对于自定义异常,和异常的一些细节都没有详细的了解,这里来进行一篇总结。


Java的异常综述

在Java中,将不正常的情况分为Exception(异常)和错误(Error),他们都同样继承于Throwable父类,Error错误,一般是和虚拟机相关的错误,同时这个也不是我们关注的重点,通常应用程序将会由于错误而崩溃,所以我们不应该在程序中对Error进行捕获。

Java中的异常分为Checked异常和Runtime异常,Runtime异常就是继承RuntimeException的异常,其他的异常就是Checked异常。
Checked必须在代码中进行处理,不然无法通过编译,而Runtime异常可以不用在代码中进行处理。

例如下面的例子

public  void one()  {
        throw new IOException("异常");   //IOException是Checked异常,必须对其进行处理
    }

如上的例子无法通过编译,因为IOException是Checked异常,可以通过在这里添加try,catch机制进行捕获,或者在方法上添加throw IOException将异常传递到需要捕获的地方进行捕获。

同样下面的Runtime的异常就可以通过编译

public  void one()  {
        throw new RuntimeException("异常");
    } 

抛出异常的方法

通常,当程序运行时,如果发生异常会抛出异常,这个时候可以通过try catch进行捕获,同时我们也可以通过throw进行手动的抛出异常。同样,如果是Runtime异常,不需要进行显式的catch,但是如果是Checked异常,就必须对该异常进行处理。

通过在函数中添加throws 异常的方法时候,其适用于当前的方法不知道该怎么进行处理这个异常,同时将这个异常向执行这个函数的地方进行传递。

自定义异常

既然所有的异常都来自于Exception类,那么我们也可以通过继承Exception来进行自定义异常,通过在类中添加一些自己的函数来达到catch后的处理。如果需要进行处理运行中的异常,需要继承RuntimeException。

一些注意事项

异常机制是java中的检查异常的一套通用机制,但是过多的使用会降低程序的性能,如果过多的try函数会让程序一直运行try catch finaly的代码,造成性能的丢失。

同时要尽量保证try中的代码的精简,过多的代码可能会产生很多异常,将会导致异常的难以精确捕捉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值