JAVA项目常用异常处理汇总

JAVA项目常用异常处理汇总

在JAVA项目开发过程中,异常是无法避免的,但是合理地处理异常可以提高项目的健壮性和稳定性。本文将介绍 JAVA 项目中常用的异常类型及处理方法。

JAVA 中常见异常类型

编译时异常

编译时异常是指在编译阶段就可以被检查出来的异常。比如:

public class TestException {
    public static void main(String[] args) {
        FileInputStream input = new FileInputStream("a.txt"); //编译器会报出FileNotFoundException
    }
}

运行时异常

运行时异常是指在运行时期间才发生的异常,比如:

public class TestException {
    public static void main(String[] args) {
        int[] arr = new int[]{1, 2, 3};
        System.out.println(arr[3]); // 编译器不会报错,但是程序在运行时会抛出ArrayIndexOutOfBoundsException异常
    }
}

错误

Error 是指程序运行时遇到的无法修复的异常,比如 OutOfMemoryError、StackOverflowError 等。

异常处理的方法

try-catch

try-catch 是 JAVA 中最基本的异常处理方法,它可以截获并处理指定的异常。示例代码如下:

public class TestException {
    public static void main(String[] args) {
        try {
            int a = 10 / 0; // 会抛出 ArithmeticException 异常
        } catch (ArithmeticException e) { // 捕获 ArithmeticException 异常
            System.out.println("发生了算数异常!");
            e.printStackTrace(); // 打印异常堆栈信息
        }
    }
}

throws

throws 关键字通常用于方法声明中,表示方法可能会抛出某种类型的异常。如果该方法确实抛出了异常,则需要调用它的方法要么使用 try-catch 块来捕获异常,要么使用 throws 关键字来将异常一层层抛出。示例代码如下:

public class TestException {
    public static void main(String[] args) throws Exception {
        testMethod();
    }

    public static void testMethod() throws Exception {
        // do something
        throw new Exception("抛出一个异常!");
    }
}

finally

finally 关键字用于定义一个代码块,在 try-catch 语句块之后执行,无论是否抛出异常都会被执行。通常用于释放资源等操作。示例代码如下:

public class TestException {
    public static void main(String[] args) {
        FileInputStream input = null;
        try {
            input = new FileInputStream("a.txt");
            // do something
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } finally {
            if (input != null) {
                try {
                    input.close(); // 关闭资源
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

示例说明

示例一

假设我们正在开发一个文件上传的功能,在上传文件前需要检查文件的格式是否符合要求。如果文件格式不正确,则需要抛出一个自定义的异常,提示文件格式不正确。

public class FileUploadException extends Exception {
    // 自定义异常代码,用于在提示信息中显示
    private int code;

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

    public int getCode() {
        return code;
    }
}

public class FileUpload {
    public void upload(File file) throws FileUploadException {
        String filename = file.getName();
        // 检查文件格式是否符合要求
        if (!filename.endsWith(".txt")) {
            throw new FileUploadException("文件格式不正确!", 1001);
        }
        // 如果文件格式正确,上传文件
        // do something
    }
}

示例二

假设我们正在开发一个计算器程序,它支持加、减、乘、除四种运算。当用户输入了一个无法进行除法计算的算式时,则需要抛出一个自定义的异常,提示“除数不能为零”。

public class DivideByZeroException extends Exception {
    public DivideByZeroException(String message) {
        super(message);
    }
}

public class Calculator {
    public int calculate(int num1, int num2, char operator) throws DivideByZeroException {
        if (operator == '+') {
            return num1 + num2;
        } else if (operator == '-') {
            return num1 - num2;
        } else if (operator == '*') {
            return num1 * num2;
        } else if (operator == '/') {
            if (num2 == 0) {
                throw new DivideByZeroException("除数不能为零!");
            }
            return num1 / num2;
        } else {
            throw new IllegalArgumentException("不支持的运算符!");
        }
    }
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA项目常用异常处理汇总 - Python技术站

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

相关文章

  • Java的编译时错误和运行时错误问题

    Java是一门编译型语言,代码需要经过编译才能运行。在编译过程中,Java编译器会检查代码的语法和正确性,如果发现问题就会报告编译时错误。在程序运行时,如果代码逻辑出现问题或者与实际情况不符,就会产生运行时错误。以下将对Java的编译时错误和运行时错误问题进行详细解释。 编译时错误 编译时错误指的是在编译Java程序时,Java编译器检测到的代码语法、类型错…

    Java 2023年5月27日
    00
  • 使用 Sa-Token 完成踢人下线功能

    一、需求 在企业级项目中,踢人下线是一个很常见的需求,如果要设计比较完善的话,至少需要以下功能点: 可以根据用户 userId 踢出指定会话,对方再次访问系统会被提示:您已被踢下线,请重新登录。 可以查询出一个账号共在几个设备端登录,并返回其对应的 Token 凭证,以便后续操作。 可以只踢出一个账号某一个端的会话,其他端不受影响。例如在某电商APP上可以看…

    Java 2023年5月9日
    00
  • java银行管理系统源码

    Java银行管理系统源码攻略 介绍 本文将介绍Java银行管理系统源码的详细攻略,包括安装、配置、使用等过程。Java银行管理系统是一款非常实用的软件,可以帮助用户管理银行账户、转账、存款、取款等操作。使用该系统可以大大提升工作效率和管理银行的准确性。本文将详细介绍该系统的安装和使用过程。 安装 Java银行管理系统源码需要在Java开发环境下进行安装和配置…

    Java 2023年5月23日
    00
  • JAVA module-info.java文件详解

    JAVA Module 是 JDK 9 之后推出的新特性,可以用来管理和组织 Java 应用程序的代码。在使用 Java module 的时候,需要用到 module-info.java 文件来声明模块的依赖和公共 API 等信息。本文将详细讲解 JAVA module-info.java 文件的相关知识,帮助读者了解如何使用该功能。 1. module-i…

    Java 2023年5月19日
    00
  • Maven的使用

    Maven 1.下载并配置 下载地址:https://maven.apache.org/download.cgi?. 配置环境变量 新建系统变量,变量名为MAVEN_HOME,变量值为 maven 的安装路径 编辑名为Path的系统变量,然后点击新建,输入 %MAVEN_HOME%\bin 配置完成,测试一下 ==> win+r输入cmd,在命令行输入…

    Java 2023年4月23日
    00
  • 详解Java使用sqlite 数据库如何生成db文件

    针对您的问题,“详解Java使用sqlite 数据库如何生成db文件”,我可以提供以下步骤指导: 准备工作 安装SQLite数据库:下载地址为:https://www.sqlite.org/download.html。 下载Java SQLite JDBC 驱动程序:下载地址为:https://bitbucket.org/xerial/sqlite-jdbc…

    Java 2023年5月19日
    00
  • SpringBoot浅析安全管理之Shiro框架

    SpringBoot浅析安全管理之Shiro框架指南 简介 Shiro 是一个强大且易用的 Java 安全框架,提供身份验证、授权、加密和会话管理等功能,可以相对简单地集成到你的应用中,并提供了灵活的配置选项。在 Spring Boot 应用中使用 Shiro,可以提供全面的安全保护,并为开发人员提供便利的开发体验。 Shiro 核心概念 Shiro 包含以…

    Java 2023年5月20日
    00
  • 不到30行JS代码实现Excel表格的方法

    如何用少于30行的JS代码实现Excel表格呢?接下来让我们详细讲解一下。 概述 首先,我们需要明确两件事情:一是我们要创建一个表格,二是我们要将表格数据导出为Excel文件。实现这两个功能,需要用到一些JS库和API。 准备工作 在编写JS代码之前,我们需要先安装以下两个JS库: SheetJS:该库可以使我们将表格数据转换为Excel文件。 FileSa…

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