java 异常处理

本文详细介绍了Java中的异常处理机制,包括异常发生的原因、异常类型、如何使用try/catch进行异常捕获、多重捕获块的应用、throw/throws关键字的作用、finally关键字的功能、自定义异常的方法以及常见的异常类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.异常发生的原因:

1.用户输入非法数据。

2.要打开不存在的文件。

3.网络通信时连接中断,或者JVM内存溢出。

二。异常类型:

1.检查性异常。

2.运行时异常。

3.错误。

三。捕获异常(try/catch)

语法:

 try
    {
        // 程序代码
    }catch(ExceptionName e1)
    {
        //Catch 块
    }

实例:越界访问数组时:

      try {
            int[] intArr = new  int[2];
            System.out.println("Access element three:"+intArr[3]);
        }catch (ArrayIndexOutOfBoundsException e){
            System.out.println("Exception thrown :"+e);
        }
        System.out.println("Out of the Block");

结果:

Exception thrown :java.lang.ArrayIndexOutOfBoundsException: length=2; index=3
Out of the Block

四。多重捕获块。

语法:

   try{
            // 程序代码
        }catch(异常类型1 异常的变量名1){
            // 程序代码
        }catch(异常类型2 异常的变量名2){
            // 程序代码
        }catch(异常类型2 异常的变量名2){
            // 程序代码
        }

当代码发生异常时,异常会抛给第一个catch块。如果异常类型不匹配,则异常会抛给第二个catch块,以此类推,直到异常被捕获或者通过所有catch块。

五。throw/throws关键字。

一个方法如果没有捕获一个检查性异常,那么该方法必须使用throws关键字来声明。throws放在方法签名的尾部。

一个方法可以声明抛出多个异常,多个异常之间用逗号隔开。

六。finally关键字。

用于创建在try代码块后面执行的代码块。

无论是否发生异常,finally代码块中的代码都会被执行。

语法:

 try{
    // 程序代码
 }catch(异常类型1 异常的变量名1){
    // 程序代码
 }catch(异常类型2 异常的变量名2){
    // 程序代码
 }finally{
    // 程序代码
 }

* catch不能独立于try存在。

* finally代码块是可选的。

* try代码块后不能既没catch也没finally。

* try,catch,finally之间不能添加任何代码。

七。自定义异常:

1.所有异常都是Throwable的子类。

2.检查性异常继承于Exception类。

3.运行时异常继承于RuntimeException类。

例如:

class MyException extends Exception{
}

八。通用异常

在java中定义了两种类型的异常和错误。

* JVM(Java虚拟机)异常:由JVM抛出的异常或错误。例如:NullPointerException类,ArrayIndexOutOfBouncesException类,ClassCastException类。

* 程序级异常:由程序或者API程序抛出的异常。例如:LlegalArgumentExcetion类,LllegalStateException类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值