专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java自定义异常处理

Java自定义异常处理

更新时间:2022-09-02 12:12:53 来源:赢咖4 浏览859次

在 Java 中,我们可以创建自己的异常,它们是 Exception 类的派生类。创建我们自己的异常称为自定义异常或用户定义的异常。基本上,Java自定义异常用于根据用户需要自定义异常。

考虑示例 1,其中 InvalidAgeException 类扩展了 Exception 类。

使用自定义异常,我们可以拥有自己的异常和消息。在这里,我们向超类的构造函数传递了一个字符串,即可以在我们创建的对象上使用 getMessage() 方法获得的异常类。

在本节中,我们将学习如何在 Java 程序中实现和使用自定义异常。

为什么要使用自定义异常?

Java 异常几乎涵盖了编程中可能出现的所有一般类型的异常。但是,我们有时需要创建自定义异常。

以下是使用自定义异常的几个原因:

捕获现有 Java 异常的子集并提供特定处理。

业务逻辑异常:这些是与业务逻辑和工作流相关的异常。对于应用程序用户或开发人员了解确切的问题很有用。

为了创建自定义异常,我们需要扩展属于 java.lang 包的 Exception 类。

考虑以下示例,其中我们创建了一个名为 WrongFileNameException 的自定义异常:

公共类 WrongFileNameException 扩展 异常 {   
    公共 错误文件名异常(字符串错误消息){  
    超级(错误消息);  
    }  
}  

示例 1:

让我们看一个 Java 自定义异常的简单示例。在以下代码中,InvalidAgeException 的构造函数将字符串作为参数。使用 super() 方法将此字符串传递给父类 Exception 的构造函数。此外,可以不使用参数调用 Exception 类的构造函数,并且调用 super() 方法不是强制性的。

TestCustomException1.java

// 表示自定义异常的类  
类 InvalidAgeException  扩展 异常  
{  
    公共 InvalidAgeException(字符串 str)  
    {  
        // 调用父异常的构造函数  
        超级(str);  
    }  
}      
// 使用自定义异常 InvalidAgeException 的类  
公共类 TestCustomException1   
{    
    // 检查年龄的方法  
    静态无效 验证(整数 年龄) 抛出 InvalidAgeException{     
       如果(年龄 <  18 ){    
        // 抛出一个用户定义的异常对象  
        throw new  InvalidAgeException( "年龄无效投票" );     
    }  
       否则 {   
        System.out.println( "欢迎投票" );   
        }   
     }      
    // 主要方法  
    公共静态无效 主(字符串参数 [])    
    {  
        尝试  
        {  
            // 调用方法   
            验证(13 );  
        }  
        捕捉 (InvalidAgeException ex)  
        {  
            System.out.println( "捕获异常" );      
            // 打印来自 InvalidAgeException 对象的消息  
            System.out.println( "发生异常:"  + ex);  
        }    
        System.out.println( "剩下的代码..." );    
    }  
}  

输出:

示例 2:

TestCustomException2.java

// 表示自定义异常的类  
 MyCustomException 类扩展 异常  
{      
}      
// 使用自定义异常 MyCustomException 的类  
公共类 TestCustomException2   
{  
    // 主要方法  
    公共静态无效 主(字符串参数 [])    
    {  
        尝试  
        {  
            // 抛出一个用户定义的异常对象  
            抛出新的 MyCustomException();   
        }  
        捕捉 (MyCustomException ex)  
        {  
            System.out.println( "捕获异常" );  
            System.out.println(ex.getMessage());  
        }    
        System.out.println( "剩下的代码..." );    
    }  
}  

输出:

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>