科普知识

java 中error一般code是多少_js

前言

     大家在运行代码的过程中是否遇到过Error或Exception呢?这两个异常出现就代表我们的程序出了问题,那他们两者之间又有哪些区别和联系呢?Error(错误)和 Exception(例外)都是 java.lang.Throwable类的子类,在Java代码中只有继承了Throwable类的实例才能被throw或者catch。

一、Error

java 中error一般code是多少_web_02

     Error 错误是任何处理技术都无法恢复的情况,肯定会导致程序非正常终止。并且 Error 错误属于未检查类型,大多数发生在运行时。绝大部分的 Error 都会导致程序处于非正常、不可恢复状态。下面是常见的错误(Error)类型:                                                          

java 中error一般code是多少_js_03

1) NoClassDefFoundError:找不到 class 定义异常

2) StackOverflowError:深递归导致栈被耗尽而抛出的异常

3) OutOfMemoryError:内存溢出异常

java 中error一般code是多少_编程语言_04

二、Exception

      Exception又分为可检查(checked)异常和不检查(unchecked)异常,可检查异常在源码里必须显示的进行捕获处理,这里是编译期检查的一部分。不检查异常就是所谓的运行时异常,通常是可以编码避免的逻辑错误,具体根据需要来判断是否需要捕获,并不会在编译器强制要求。             

2.1 运行时异常(RuntimeException):

1)NullPropagation:空指针异常;

2)ClassCastException:类型强制转换异常

3)IllegalArgumentException:传递非法参数异常

4)IndexOutOfBoundsException:下标越界异常

5)NumberFormatException:数字格式异常

2.2 非运行时异常:

1)ClassNotFoundException:找不到指定 class 的异常

2)IOException:IO 操作异常

java 中error一般code是多少_js_05

三、实战

下面我们通过简单的代码来演示Error和 Exception                      

3.1 Error

package code.yichang2;
class StackOverflow {
    public static void test(int i) {
        if (i == 0) {
            return;
        } else {
            //无返回值,将会进入死循环,最终导致堆栈溢出错误
            test(i++);
        }
    }
}
public class Error {
    public static void main(String[] args) {
        // 执行StackOverflow方法
        StackOverflow.test(5);
    }
}

运行结果及截图:

java 中error一般code是多少_js_06

3.2 Exception

package code.yichang2;
public class Exception {
    public static void main(String args[]) {
        int data[] = {1, 2, 3, 45, 6, 78, 9, 10};
        for(int i = 0; i < 10; i++) {
        //若要正确运行只需将for循环里10改为8或者data.length即可
            System.out.println(data[i]);
        }
    }
}

运行结果及截图:

java 中error一般code是多少_jvm_07

因为数组的长度只有8,在运行程序的时候,检索数组的下标超过8就会抛出IndexOutOfBoundsException。

java 中error一般code是多少_java_08

小编有话说

最近很忙,但总感觉收获甚微,仿佛在原地踏步。放假的回忆仿佛还停留在昨天,看着学校慢慢开始恢复往昔的人气,新学期就要开始了~