当前位置: 移动技术网 > IT编程>开发语言>Java > Java中异常的概念及异常的形式存在

Java中异常的概念及异常的形式存在

2020年07月17日  | 移动技术网IT编程  | 我要评论

异常的基本概念

什么是异常?java提供异常机制有什么用?
程序代码在执行的过程中,发生了不正确的情况而停止程序,这种情况叫做:异常。

java提供异常机制,在发生了异常时,会把异常信息输出在控制台,我们发现后,可以定位到代码中,继续修改完善代码。提高程序的健壮性。
如果发生了异常,JVM却一声不吭,这对我们发现程序的错误就很难。

测试代码:

public class Test01 {
    public static void main(String[] args) {
        // 如果我们这样写代码
        /*int a = 10;
        int b = 0;
        int c = a / b;
        System.out.println(c);*/

        // 发现程序给我们抛出了异常:java.lang.ArithmeticException: / by zero
        // 我们发现后明白程序有问题,继续修改
        int a = 10;
        int b = 0;
        if (b == 0)
        {
            System.out.println("除数不能为0!");
            return;
        }
        int c = a/b;
        System.out.println(c);
    }
}

————————————————————————————
java中异常是以什么形式存在的呢?

我们发现java.lang包下,有很多对象都是关于异常的对象。
例如:NullPointerException(空指针异常):
public class NullPointerException extends RuntimeException { }

NumberFormatException(数字格式化异常):
public class NumberFormatException extends IllegalArgumentException { }

它们都是类,public class的,没有加其他修饰符,就是个普通的类,类中也有构造方法。

异常类对应生活中的现象:
火灾(这相当于一个异常类):
2008年8月8日,小明家着火了。(这个相当于火灾的一个实例,是一个对象)
2008年8月9日,小刚家着火了。(这个相当于火灾的另一个实例)
类是模板,对象是类的实例。

测试代码:

public class Test02 {
    public static void main(String[] args) {

        // 我们来通过构造方法实例化一个异常类
        NullPointerException npe = new NullPointerException("我是一个空指针异常的类");

        // 抛出异常类的信息,也就是打印异常类的信息
        System.out.println(npe);  // java.lang.NullPointerException: 我是一个空指针异常的类
        // 所以我们知道抛出异常信息一定要实例化一个异常对象


        // 我们继续探讨除0的代码
        // 执行这段代码会在执行完int c = a / b;后程序异常停止,并抛出了异常信息
        int a = 10;
        int b = 0;
        int c = a / b;  //实际上JVM在这里发现除数b的值是0,开始实例化了一个ArithmeticException类(算术异常类)

        // 相当于执行了下面2行代码,JVM停止了程序的运行
        //ArithmeticException ae = new ArithmeticException("/ by zero");
        //System.out.println(ae);

        System.out.println(c);  // java.lang.ArithmeticException: / by zero
    }
}

本文地址:https://blog.csdn.net/pipizhen_/article/details/107387117

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网