【JAVA提升】- 关于异常

异常

1. 异常类类图

在java世界里,所有的异常类都是Throwable的子类。 Throwable两个子类 Error 和 Exception, Error也是可以被捕获的,只是大多数情况下,认为出现error是致命的错误,不应该被忽略,所有大多数情况下都是捕获的Exception。

Exception的子类就是各种xxxException,而Error的子类就是各种XXXError了。

Throwable

2. try-catch-finally

示例:

package com.fun.lang;

/**
 * finally是不是一定执行
 *
 * @author fun
 * @date 2017-03-27 17:17
 */
public class TryCatchDemo {

    public static void main(String[] args) {

        try {
            System.out.println("into try block...");
//          System.exit(0); // 打开此注释,会发现,finally里面的代码并没有执行,这个很好理解,虚拟机都退出了,怎么执行代码
            throw new Error();
        }catch (Throwable e) {
            System.out.println("into catch block...");

        }finally {
            System.out.println("into finally block...");
        }

    }

}

/*
 * output:
 *into try block...
 *into catch block...
 *into finally block...
 */

结论:

  1. finally里面的代码不一定执行的,例如虚拟机退出了
  2. Throwable两个子类 Error 和 Exception, Error也是可以被捕获的,只是catch的是当前捕获的Error或者更上级的类才行捕获Error
  3. catch的是时候可以catch到最顶层Throwable,这样整个异常系统里面的东西都能捕获

3. 自定义异常

根据上面类图的结构,如果想要定义一个自己的一样,可以继承Exception。当然也可以自定义一个错误,继承Error就好了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 通俗编程——白话JAVA异常机制 - 代码之道,编程之法 - 博客频道 - CSDN.NEThttp://blog...
    葡萄喃喃呓语阅读 8,388评论 0 25
  • 初识异常(Exception) 比如我们在取数组里面的某个值得时候,经常会出现定义的取值范围超过了数组的大小,那么...
    iDaniel阅读 5,836评论 1 2
  • 菊紧喵阅读 1,826评论 1 0
  • 我的爱情很简单, 简单到三言两语即可解释, 只需要去喜欢一个人, 用全身心去喜欢她, 然后爱她依恋她, 然后彻夜难...
    叫我SE阅读 1,306评论 0 0
  • 今天上午第三节课是我最喜欢的“武术课”了。 一开始,老师先带着我们复习前面学过的招数,等待整体都熟...
    王杨晨阅读 1,183评论 0 0