java异常:Throwable子类Error与Exception的区别,三种异常的处理方法,继承中的异常处理,异常使用的注意事项异常

本文详细介绍了Java中的异常处理,包括Error与Exception的区别,Exception的两类划分,以及如何进行捕获和抛出异常。Error表示严重问题,通常与JVM相关,无法预防;Exception是可处理的异常,分为编译异常和运行时异常。在异常处理中,编译异常必须捕获或声明,而运行时异常可以选择处理。文章还涵盖了继承中的异常处理和使用异常的注意事项。
摘要由CSDN通过智能技术生成

Error与Exception的思维导图
**Throwable:**在程序定义中一般指不期而至的各种情况,如:文件找不到、网络连接失败、非法参数等。异常是一种事件,它发生在程序运行期间、或者代码编译时候,它干扰了正常的程序指令流程继续下去。Java通过API中的Throwable类的众多子类描述各种不同的异常。其中Error与Exception也都是Throwable的两个重要子类。

Error与Exception的区别

**Error:**即错误,是在程序编译时出现的错误,表示在运行应用程序中较严重的问题,一般与代码无关,只能通过修改程序才能修正。一般是JVM(Java虚拟机)的相关问题。如系统崩溃,虚拟机错误,内存不足,动态链接失败等。
例如两个比较常见的错误,一个是Virtual MachineError(Java虚拟机运行错误) 代码在运行时JVM出现的问题;
还有一个是OutOfMemoryError,即JVM不再继续执行操作所需的内存资源。
对于这种错误程序本身是无法恢复和预防的,当这些错误发生时,JVM会选择线程停止。

**Exception:**即异常,是指程序本身可以处理的异常,可以捕获且可能可以恢复。当遇到这类异常时,要尽可能处理异常,增强代码的健壮性,使程序恢复运行。

Exception的两类划分

Exception可以分为CheckedException(UnCheckedException)编译异常(非运行时异常)和RuntimeException运行时异常

**RuntimeException运行时异常:**就是我们在开发测试功能时程序终止,控制台出现异常
常见的有:
ArithmeticException 算数异常

NullPointerException 空指针异常(最容易出现最容易犯的错)

ArrayIndexOutOfBoundsException 索引超出异常

IndexOutOfBoundsException 下标越界异常

ClassCastException 两个类型转换不兼容

NumberFormatException 数字格式异常
对于运行时异常,java编译器不要求必须进行异常捕获处理或者抛出声明,由程序员自行决定。

故该类的异常处理方法有:(下面会对两种方法进行讲解)

  1. 抛出异常
  2. 捕获异常:使用try-catch对异常进行捕获
  3. 修改代码,使代码更健壮

CheckedException(UnCheckedException)编译异常:也叫检查异常或非运行异常,也就是程序在编译时就出现异常。
常见的异常有:
IOException输入或输出异常(即写读异常)

FileNotFoundException文件未被找到

SQLException数据库交互异常
对于非运行时异常,java编译器强制程序员必须进行捕获处理,如果不进行捕获或者抛出声明处理,编译无法通过。
故该类的异常处理方法有:(下面会对两种方法进行讲解)

  1. 抛出异常
  2. 捕获异常:使用try-catch对异常进行捕获

捕获异常

使用try和catch关键字,对异常先进行捕获,再进行处理。
try中包围的代码表示这段代码可能会发生异常,如果发生异常,便会被catch捕获到,然后在catch块中对异常进行处理。
下面看一个例子:

public static void main
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值