【java异常有哪些分类?】

java异常有哪些分类?

下面是java异常类的组织结构,红色区域的异常类表示是程序需要显示捕捉或者抛出的。

Throwable

是java异常的顶级类,所有异常都继承于这个类。
Error,Exception是异常类的两个大分类。

Error

Error是非程序异常,即程序不能捕获的异常,一般是编译或者系统性的错误,如OutOfMemorry内存溢出异常等。

Exception

Exception是程序异常类,由程序内部产生。Exception
又分为运行时异常,非运行时异常类。

运行时异常

运行时异常的特点是java编译器不会检查它,也就是说,当程序中可能出现这类异常时,会编译通过,但是在运行时会出现错误。
如NullPointException,ArrayIndexoutOfBuoundsException等。

非运行时异常

程序必须进行处理的异常,编译不通过,必须捕获或者抛出。如IOException,ClassNo
tFoundException等。

java常见的异常有哪些?

NullPointerException

空指针异常,操作一个null对象的方法或者属性时触发。

OutOfMemoryError

内存异常异常,这不是程序能控制的,是指要分配的对象的内存超出了当前最大的内存堆,需要调整堆内存大小(-Xmx)以及优化才程序。

IOException

IO,即:input,output,我们在读写磁盘文件,网络内容的时候会发生的一种异常,这种异常是受检查的异常,需要手工捕获。

FileNotFoundException

文件找不到异常,如果文件不存在就会抛出这种异常。

ClassNotFoundException

类找不到异常,在类路径下不能加载指定的类。

ClassCastException

类型转换异常,如将一个数字强制转换成字符串。

throw和throws的区别?

throw: 是真实抛出一个异常
throws: 是声明程序可能会抛出一个异常

  • 22
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Java中,异常可以分为三个主要的分类:检查异常(Checked Exception)、运行时异常(Runtime Exception)和错误(Error)。 1. 检查异常(Checked Exception):这些异常在编译时就需要进行处理或者声明抛出,否则代码无法通过编译。常见的检查异常包括IOException、SQLException等。例如: ```java import java.io.FileReader; import java.io.IOException; public class CheckedExceptionExample { public static void main(String[] args) { try { FileReader fileReader = new FileReader("file.txt"); // 其他处理逻辑 } catch (IOException e) { e.printStackTrace(); } } } ``` 2. 运行时异常(Runtime Exception):这些异常是在运行时才会出现的,不需要强制进行处理或者声明抛出。常见的运行时异常包括NullPointerException、ArrayIndexOutOfBoundsException等。例如: ```java public class RuntimeExceptionExample { public static void main(String[] args) { int[] arr = {1, 2, 3}; try { int num = arr[4]; // 越界访问数组 } catch (ArrayIndexOutOfBoundsException e) { e.printStackTrace(); } } } ``` 3. 错误(Error):这些异常表示Java运行时环境中出现了严重的问题,无法通过代码进行处理。常见的错误包括OutOfMemoryError、StackOverflowError等。例如: ```java public class ErrorExample { public static void main(String[] args) { try { recursiveMethod(); } catch (StackOverflowError e) { e.printStackTrace(); } } public static void recursiveMethod() { recursiveMethod(); } } ``` 需要注意的是,运行时异常和错误都不需要强制处理,但是在实际开发中,我们仍然应该根据具体情况进行适当的异常处理,以保证程序的健壮性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

业余码手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值