欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-10-18 18:19:57
异常的基本概念什么是异常?java提供异常机制有什么用?程序代码在执行的过程中,发生了不正确的情况而停止程序,这种情况叫做:异常。java提供异常机制,在发生了异常时,会把异常信息输出在控制台,我们发现后,可以定位到代码中,继续修改完善代码。提高程序的健壮性。如果发生了异常,JVM却一声不吭,这对我们发现程序的错误就很难。测试代码:public class Test01 { public static void main(String[] args) { // 如果我们这...

异常的基本概念

什么是异常?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

相关标签: Java java