Java自定义异常

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

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

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

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

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

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

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

  • 捕获和针对现有Java异常的特定处理。
  • 业务逻辑异常:这些异常与业务逻辑和工作流程有关。对于应用程序用户或开发人员来说,了解确切的问题非常有用。

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

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

public class WrongFileNameException extends Exception {  
    public WrongFileNameException(String errorMessage) {  
    super(errorMessage);  
    }  
}  

注意:我们需要编写一个以字符串为错误消息的构造函数,并且调用父类构造函数时使用super()方法。同时,可以在不使用参数的情况下调用Exception类的构造函数,但调用super()方法并非强制性。

示例1:

让我们看一个简单的Java自定义异常的例子。在下面的代码中,InvalidAgeException的构造函数以字符串作为参数。这个字符串通过super()方法传递给父类Exception的构造函数。也可以在不使用参数的情况下调用Exception类的构造函数,但调用super()方法并非强制性。

TestCustomException1.java

//表示自定义异常的类  
class InvalidAgeException  extends Exception  
{  
    public InvalidAgeException (String str)  
    {  
        // 调用父异常的构造函数  
        super(str);  
    }  
}  
    
// 使用自定义异常 InvalidAgeException 的类    
public class TestCustomException1  
{  
  
    // 检查年龄的方法
    static void validate (int age) throws InvalidAgeException{    
       if(age < 18){  
  
        // 抛出一个用户定义异常的对象  
        throw new InvalidAgeException("age is not valid to vote");    
    }  
       else {   
        System.out.println("welcome to vote");   
        }   
     }    
  
    //主要方法  
    public static void main(String args[])  
    {  
        try  
        {  
            // 调用方法     
            validate(13);  
        }  
        catch (InvalidAgeException ex)  
        {  
            System.out.println("Caught the exception");  
    
            //打印来自 InvalidAgeException 对象的消息  
            System.out.println("Exception occured: " + ex);  
        }  
  
        System.out.println("rest of the code...");    
    }  
}  

输出:

图1

示例2:

TestCustomException2.java

// 表示自定义异常的类  
class MyCustomException extends Exception  
{  
    
}  
    
//使用自定义异常 MyCustomException 的类  
public class TestCustomException2  
{  
    // 主要方法  
    public static void main(String args[])  
    {  
        try  
        {  
            //  抛出一个用户定义异常的对象  
            throw new MyCustomException();  
        }  
        catch (MyCustomException ex)  
        {  
            System.out.println("Caught the exception");  
            System.out.println(ex.getMessage());  
        }  
  
        System.out.println("rest of the code...");    
    }  
}  

输出:

图2

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想