searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

java异常介绍

2023-07-03 06:20:14
4
0

在Java中,运行代码的时候难免会遇到错误,然后在错误行的代码终止执行后面的逻辑。出现错误的时候会抛出异常,异常的原因可以分为两大类:

用户输入了非法数据。
要打开的文件不存在。
网络通信时连接中断,或者JVM内存溢出。

这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:

检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
运行时异常:运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。

举个栗子:
public class Test {
    public static void main(String[] args) {
        List<Integer> data = Arrays.asList(1, 2, 3, 4);
        System.out.println(data.get(10));
    }
}

 

这种代码会出现数组越界的异常:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
    at java.util.Arrays$ArrayList.get(Arrays.java:3841)
    at Test.main(Test.java:22)

 

比如如果进行除法运算,被除数为0的时候也会抛出异常:
public class Test {
    public static void main(String[] args) {
        System.out.println(10 / 0);
    }
}

异常打印:
Exception in thread "main" java.lang.ArithmeticException: / by zero
    at Test.main(Test.java:16)

 

Throwable有两个直接子类Error和Exception,其中Error代表程序中产生的错误,Exception代表程序中产生的异常。
Error类称为错误类,它表示Java运行时产生的系统内部错误或资源耗尽的错误,是比较严重的,仅靠修改程序本身是不能恢复执行的,例如系统崩溃,虚拟机错误等。

Error类有一批子类,比如:
IOError I/O错误;
OutOfMemoryError 内存溢出;

Exception类称为异常类,它表示程序本身可以处理的错误。在Java程序开发中进行的异常处理,都是针对Excption类及其子类的。在Exception类的众多子类中有一个特殊的异常类,该类及其子类用于表示运行时异常。除了此类,Exception类下所有其他的子类都用于表示编译时异常。

IOException I/O异常,比如文件找不到抛出FileNotFoundException;

Runti meException 运行时异常,比如空指针抛出NullPointerException

0条评论
作者已关闭评论
t****m
98文章数
1粉丝数
t****m
98 文章 | 1 粉丝
t****m
98文章数
1粉丝数
t****m
98 文章 | 1 粉丝
原创

java异常介绍

2023-07-03 06:20:14
4
0

在Java中,运行代码的时候难免会遇到错误,然后在错误行的代码终止执行后面的逻辑。出现错误的时候会抛出异常,异常的原因可以分为两大类:

用户输入了非法数据。
要打开的文件不存在。
网络通信时连接中断,或者JVM内存溢出。

这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:

检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
运行时异常:运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。

举个栗子:
public class Test {
    public static void main(String[] args) {
        List<Integer> data = Arrays.asList(1, 2, 3, 4);
        System.out.println(data.get(10));
    }
}

 

这种代码会出现数组越界的异常:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
    at java.util.Arrays$ArrayList.get(Arrays.java:3841)
    at Test.main(Test.java:22)

 

比如如果进行除法运算,被除数为0的时候也会抛出异常:
public class Test {
    public static void main(String[] args) {
        System.out.println(10 / 0);
    }
}

异常打印:
Exception in thread "main" java.lang.ArithmeticException: / by zero
    at Test.main(Test.java:16)

 

Throwable有两个直接子类Error和Exception,其中Error代表程序中产生的错误,Exception代表程序中产生的异常。
Error类称为错误类,它表示Java运行时产生的系统内部错误或资源耗尽的错误,是比较严重的,仅靠修改程序本身是不能恢复执行的,例如系统崩溃,虚拟机错误等。

Error类有一批子类,比如:
IOError I/O错误;
OutOfMemoryError 内存溢出;

Exception类称为异常类,它表示程序本身可以处理的错误。在Java程序开发中进行的异常处理,都是针对Excption类及其子类的。在Exception类的众多子类中有一个特殊的异常类,该类及其子类用于表示运行时异常。除了此类,Exception类下所有其他的子类都用于表示编译时异常。

IOException I/O异常,比如文件找不到抛出FileNotFoundException;

Runti meException 运行时异常,比如空指针抛出NullPointerException

文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0