异常-Exception

本文详细介绍了Java中的异常处理,包括异常的基本概念、异常体系、运行时异常和编译异常的区别,以及常见异常类型。重点讨论了try-catch、throws的使用和自定义异常的创建,帮助开发者理解和掌握Java异常处理机制,提升代码健壮性。
摘要由CSDN通过智能技术生成

目录

1. 异常介绍

2. 异常体系图

3. 异常的分类

4. 常见的异常

4.1 运行时异常

 4.1.1 NullPointerException 空指针异常

4.1.2 ArithmeticException 数学运算异常

4.1.3 ArrayIndexOutOfBoundsException 数组下标越界异常

 4.1.4 ClassCastException 类型转换异常

4.1.5 NumberFormatException 数字格式不正确异常

4.2 编译异常

4.2.1 编译异常介绍

5 异常处理

5.1 基本介绍

5.2 异常的处理方式

5.3 异常处理示意图

5.4 try-catch 异常处理

5.4.1 try-catch 方式处理异常说明

 5.4.2 try-catch的基本语法

5.4.3 try-catch使用的注意事项

5.4.4 try-catch-finally 执行顺序

5.5 throws 异常处理

5.5.1 基本介绍

5.5.2 throws的注意事项和使用细节 

5.6 自定义异常

5.6.1 基本概念

5.6.2 自定义异常的步骤

5.7 throw 和 throws 的区别


1. 异常介绍

基本概念:

        java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)

执行过程中所发生的异常情况可以分为两大类:

1.Error(错误):Java虚拟机无法解决的问题。如:JVM系统的内部错误、资源耗尽等严重情况。比如,StackOverFlowError[栈溢出]和OOM(out of memory),Error是严重错误,程序会崩溃。

2.Exception:其他编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如:空指针访问,试图读取不存在的文件,网络连接中断等等。

Exception分为两大类:运行时异常[程序运行时发生的异常]和编译时异常[编程时编译器检查出的异常]

        如果程序员认为一段代码可能出现异常/问题,可以使用 try-catch 异常处理机制来解决
,从而保证程序的健壮性。

        将该代码块->选中->快捷键 ctrl + alt + t -> 选中 try-catch,如果进行异常处理,那么即使出现了异常,程序可以继续执行  

2. 异常体系图

以类图的方式列举常见的异常:

3. 异常的分类

异常分为两大类,运行时异常编译时异常.
        1.运行时异常,编译器检查不出来.一般是指编程时的逻辑错误,是程序员应该避免其出现的异常.异常类及它的子类都是运行时异常java.lang.RuntimeException类及它的子类都是运行时异常

        对于运行时异常,可以不作处理,因为这类异常很普遍,若全处理可能会对程序的可读性和运行效率产生影响

        2.编译时异常,是编译器要求必须处置的异常。

4. 常见的异常

4.1 运行时异常

  1. NullPointerException 空指针异常
  2. ArithmeticException 数学运算异常
  3. ArrayIndexOutOfBoundsException 数组下标越界异常
  4. ClassCastException 类型转换异常
  5. NumberFormatException 数字格式不正确异常[]

 4.1.1 NullPointerException 空指针异常

当应用程序试图在需要对象的地方使用 null 时,抛出该异常。

代码举例:

String name = null;
System.out.println(name.length());

4.1.2 ArithmeticException 数学运算异常

当出现异常的运算条件时,抛出此异常。例如,一个整数“除以零”时,抛出此类的一个实例

代码举例:
int a = 2;

int b = 0;

System.out.println(a / b);//抛出ArithmeticException

4.1.3 ArrayIndexOutOfBoundsException 数组下标越界异常

用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引

代码举例:

int[] arr = {1,2,4};
for (int i = 0; i <= arr.length; i++) {//抛出异常,非法索引,数组下标为4
System.out.println(arr[i]);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值