Java异常

    在现实中充满了不良的代码和有错误的代码,在程序运行时,由于一些错误或其他外部环境的影响造成用户数据的丢失,用户就可能不在使用这个程序了。为解决这些问题,Java使用一种称为异常处理的错误捕获机制处理。

    一、异常分类

    

        在Java中,异常对象都是派生于Throwable类,上图即为Java中的异常层次结构图。

    Error类描述了Java运行时系统的内部错误和资源耗尽错误。应用程序不应该抛出这种类型的异常。

    在设计Java程序时,需要关注Exception层次结构。这个层次分为也分为2个分支,由图可以看出。

由程序错误导致的异常属于RuntimeException;而程序本身没问题,但由于像IO错误这类问题导致的异常属于其他异常。


Java语言规范中有2个重要的概念:非受查异常(unchecked)和受查异常(checked)。

    编译器将检查是否为所有的受查异常提供异常处理器。



二、方式

    1.通过throws声明受查异常

        在方法首部声明所有可能抛出的异常

        如果调用了一个抛出受查异常的方法,就必须对他进行处理,或者继续传递。

        注:子类覆盖超类方法时,子类中声明的受查异常不能比超类方法中声明的异常更通用。(子小于父)

    2.抛出异常

        throw抛出异常。一旦方法抛出了异常,这个方法就不可能返回到调用者。

    3捕获异常

        try,catch语句。注意有多个catch时的书写顺序,应该将范围小的写在上方

        当代码抛出一个异常时,就会终止方法中剩余代码的处理,并退出这个方法的执行。要想一些方法在退出前得到处理,就使用finally子句。

    三、断言

    在一个具有自我保护能力的程序中,断言很常用。断言机制允许在测试期间向代码中插入一些检查语句。当代码发布时,这些插入的检测语句会被自动移走。

写法:

    关键字assert 条件;

    或者    assert 条件:表达式;

 如果结果为false,则抛出一个AssertionError异常

默认情况下,断言被禁用。可以用 java -ea命令进行启用,启用或禁用断言时不必重新编译程序。

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值