Gorilla带您学java之异常处理

异常

相比大家写了这么久代码,控制台出现异常的次数不会少了吧。今天我们就来看看异常。
首先,什么是异常呢。
Java异常是Java提供的一种识别及响应错误的一致性机制。就是会出现各种奇奇怪怪的红字终止了你的程序。
我们来看看异常的划分

Throwable(所有异常的父类)
     --Error(数据库崩溃 系统崩溃)
     --Exception(异常类)
          --RuntimeException(运行时异常)

控制台呢正常打印的就是RuntimeException了。
异常的处理方式:
1.自己处理
2.交给上级处理(该方法是谁调用的谁就是上级)
然后,相比大家都会想到try…catch…finally
try: 存放可能发生异常的代码
catch: 匹配异常类的对象
finally: 异常匹配完毕后 肯定会执行的代码
下面我们来看一个简单的处理异常的栗子吧

try {
    int num = 10 / 0;
    System.out.println(num);
} catch (ArithmeticException e) {
    System.out.println("我跌倒了很难受,呜呜呜呜呜呜呜");
} finally {
    System.out.println("怎么办呢,要小姐姐亲亲才会高兴");
}

首先大家都知道任何数都是不可以除0,如果正常写并打印 10/0 的话会报ArithmeticException异常。那么当我们捕捉这个异常并处理之后呢。此时控制台会打印什么呢?
相比大家也能猜出一二了吧。

// 控制台打印
我跌倒了很难受,呜呜呜呜呜呜呜
怎么办呢,要小姐姐亲亲才会高兴

那么我们可不可以自己编写一个异常呢。
答案是肯定的

// 编写一个异常测试类
class TestException{
    // 抛编译时异常
    public void fun1() throws Exception {
        throw new Exception("编译时异常");
    }
    // 抛运行时异常,运行时异常可以省略 方法上的throws声明
    public void fun2() {
        throw new RuntimeException("运行时异常");
    }
}
// 在main方法中调用
public static void main(String[] args) {
    Test test = new Test();
    // fun1这个方法会在编译时就报错
    //test.fun1();
    test.fun2();
}
// 此时控制台就会打印此异常的
/* 1.打印异常信息 运行时异常
 * 2.打印异常类  java.lang.RuntimeException
 * 3.打印错误发生的位置 at xx.TestException.fun2(Demo.java:26)
 * 4.将你的程序停止(记住)
*/
Exception in thread "main" java.lang.RuntimeException: 运行时异常
    at xx.TestException.fun2(Demo.java:26)
    at xx.Demo07.main(Demo.java:13)

这就写完了一个自定义的异常类了,是不是很开心呢。

猜你喜欢

转载自blog.csdn.net/qq_37113621/article/details/82631815