Java抛出异常与自定义异常类应用示例

Java中的异常处理是必不可少的,它可以让我们的代码更加健壮,提高程序的容错性。Java抛出的异常有两种,一种是系统自带的异常,如IOException、NullPointerException等,另一种是自定义异常,可以根据业务需要自行定义。

本篇攻略将详细讲解Java抛出异常与自定义异常类的应用示例,希望能够对大家有所帮助。

Java抛出异常示例

Java中的异常分为受检异常和运行时异常,其中受检异常需要在方法签名上声明或者捕获,而运行时异常则不需要。接下来我们通过一个例子来说明如何处理运行时异常和受检异常。

运行时异常示例

运行时异常是指在程序运行时抛出的异常,通常是由程序逻辑错误引起的,如数组下标越界、除数为0等。下面是一个简单的运行时异常示例:

public class Demo {
    public static void main(String[] args) {
        int a = 100;
        int b = 0;
        try {
            int c = a / b;
            System.out.println(c);
        } catch (ArithmeticException e) {
            System.out.println("除数不能为0");
        }
    }
}

在上面的代码中,我们定义了a和b两个整型变量,然后试图将a除以b。由于b为0,因此会抛出ArithmeticException异常。我们使用了try-catch语句块来捕获异常,并在catch中处理了这个异常,输出了一条“除数不能为0”的提示信息。

这个示例中对运行时异常的处理比较灵活,我们可以到达很好的提示效果。

受检异常示例

受检异常是指需要在方法签名上声明或者捕获的异常,它通常由外界因素引起,如文件不存在、网络连接超时等。下面是一个受检异常的示例:

public class Demo {
    public static void main(String[] args) {
        try {
            FileInputStream fis = new FileInputStream("test.txt");
        } catch (FileNotFoundException e) {
            System.out.println("文件不存在");
        }
    }
}

在上面的代码中,我们试图打开一个不存在的文件“test.txt”,因此会抛出FileNotFoundException异常。我们使用了try-catch语句块来捕获这个异常,输出了一条“文件不存在”的提示信息。

自定义异常示例

除了Java系统自带的异常类以外,我们还可以根据需要自定义异常类。通常情况下,我们自定义异常类需要继承自Exception或其子类。在自定义异常类中,我们可以定义一些构造方法和属性来满足业务需求。下面是一个自定义异常类的示例:

public class MyException extends Exception {
    private int code;
    private String message;

    public MyException(int code, String message) {
        this.code = code;
        this.message = message;
    }

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }
}

在上面的代码中,我们自定义了一个MyException类,它继承自Exception类。我们还定义了一个code属性和一个message属性,分别用于表示异常的状态码和异常信息。最后,我们提供了一个构造方法来初始化这些属性。

现在我们可以使用这个异常类来处理自己的业务逻辑。下面是一个使用自定义异常类的示例:

public class Demo {
    public static void main(String[] args) {
        try {
            login("admin", "123456");
        } catch (MyException e) {
            System.out.println("登录失败,错误码:" + e.getCode() + ",错误信息:" + e.getMessage());
        }
    }

    private static void login(String username, String password) throws MyException {
        if (!"admin".equals(username) || !"123456".equals(password)) {
            throw new MyException(1001, "用户名或密码错误");
        }
        System.out.println("登录成功");
    }
}

在上面的代码中,我们定义了一个login方法,用于模拟用户登录。如果用户名或密码错误,我们就抛出一个MyException异常,其中状态码为1001,消息为“用户名或密码错误”。在main方法中,我们使用try-catch语句块来捕获这个异常,并输出错误信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java抛出异常与自定义异常类应用示例 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Java获取字符串编码格式实现思路

    获取Java字符串的编码格式可以通过以下步骤来实现: 将字符串转换为字节流 通过分析字节流来确定编码格式 下面展示两个示例: 示例一:使用系统默认编码获取字符串编码格式 String str = "你好,世界!"; byte[] bytes = str.getBytes(); // 将字符串转换为字节流 Charset charset =…

    Java 2023年5月20日
    00
  • 宾馆客房管理系统(Java+SQL Server)

    源代码下载链接: 一、宾馆客房管理系统开发初衷   随着互联网技术的迅速发展,计算机技术的普及以及信息化时代的推波助澜,宾馆客房需求的逐渐增大,这也是挑战了宾馆客房管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的宾馆客房管理系统,提高了宾馆的工作效率,为想要入住宾馆的人提供更好的服务。宾馆客房管理工作面对大量顾客的私人信息,引入信…

    Java 2023年4月18日
    00
  • Java List集合返回值去掉中括号(‘[ ]’)的操作

    要把Java List集合返回值去掉中括号(‘[ ]’),需要使用Java8中的Stream API。下面是具体步骤和示例说明: 使用stream()方法将List转化为Stream; 使用map()方法将Stream中的元素转化为字符串; 使用collect()方法将Stream中的元素收集起来,以逗号分隔并放到一个新的字符串里。 示例代码如下: List…

    Java 2023年5月26日
    00
  • MyBatis通过BATCH批量提交的方法

    MyBatis 提供了一个方便的批量操作接口 – Session#batch(), 可以用于执行批量插入(insert)、更新(update)或删除(delete)操作。在这个接口的帮助下,程序员可以很方便地将多个 SQL 语句并发提交到数据库,从而提高批量操作的效率。 MyBatis BATCH 批量操作的使用方法 在你的映射文件中,使用 insert、u…

    Java 2023年5月20日
    00
  • 使用cmd根据WSDL网址生成java客户端代码的实现

    使用cmd根据WSDL网址生成java客户端代码的实现,可以分为以下几个步骤: 打开cmd窗口 进入java/bin目录 敲入以下命令,其中”your_web_service_url”为你需要生成代码的WSDL服务的地址,”your_package_name”为你生成的Java代码所在的包名。 wsimport -keep -verbose your_web…

    Java 2023年5月19日
    00
  • SpringMVC拦截器超详细解读

    以下是关于“SpringMVC拦截器超详细解读”的完整攻略,其中包含两个示例。 SpringMVC拦截器超详细解读 在SpringMVC中,拦截器是一种非常重要的组件,它可以在请求到达控制器方法之前或之后进行一些处理。本攻略将详细介绍SpringMVC拦截器的使用方法和注意事项。 拦截器的作用 拦截器可以在请求到达控制器方法之前或之后进行一些处理,如记录日志…

    Java 2023年5月16日
    00
  • Java跨平台原理与虚拟机相关简介

    Java跨平台原理与虚拟机相关简介 什么是Java跨平台? Java成为跨平台的编程语言,是因为Java源代码编译成字节码(Bytecode),而字节码可以在任何安装了Java运行环境(Java Runtime Environment,JRE)的计算机上运行。Java跨平台原理主要是因为Java虚拟机(Java Virtual Machine,JVM)的存在…

    Java 2023年5月24日
    00
  • JAVA JNI原理详细介绍及简单实例代码

    先来介绍一下什么是JNI。 JNI,全称为Java Native Interface,即Java本地接口,是一个开发工具包,提供了一种使Java代码和本地代码(C、C++等)交互的机制。 开发者可以使用JNI将本地的代码嵌入到Java应用程序中,从而充分发挥本地代码的性能,是Java与本地代码的桥梁。 下面我来分步骤详细讲解“JAVA JNI原理详细介绍及简…

    Java 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部