Java中try catch处理异常示例

下面就是“Java中try catch处理异常示例”的详细讲解。

1. 什么是异常?

在Java程序运行过程中,可能会遇到一些非正常的情况,例如读取文件时文件不存在、网络连接异常等等,这些非正常的情况被称为“异常”。

Java中的异常是Throwable类及其子类的实例,可分为检查型异常和非检查型异常(也叫运行时异常)。其中,检查型异常必须显式处理,而非检查型异常则可以不处理。

2. try-catch语句

在Java中,可以使用try-catch语句来处理异常。try块中放置可能会抛出异常的代码,catch块中处理发生的异常。

try {
    // 可能会抛出异常的代码
} catch (Exception e) {
    // 异常处理逻辑
}

catch块中的Exception类型可以换成其它的异常类型,以处理特定的异常。

3. try-with-resources语句

在Java7中新增了try-with-resources语句,用于自动关闭资源,如文件、数据库连接等。在try块中打开资源,当try块执行完成或出现异常时,将自动关闭资源。

try (InputStream is = new FileInputStream(file)) {
    // 处理文件流
} catch (IOException e) {
    // 异常处理逻辑
}

4. 示例说明

下面通过两个示例说明try-catch语句的应用。

示例1:文件读取异常处理

代码如下:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class FileReadDemo {
    public static void main(String[] args) {
        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader("test.txt"));
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            System.out.println("文件读取错误:" + e.getMessage());
        } finally {
            try {
                if (br != null) {
                    br.close();
                }
            } catch (IOException e) {
                System.out.println("关闭文件流失败:" + e.getMessage());
            }
        }
    }
}

上述代码中,使用BufferedReader读取文件内容,若出现异常,则捕获异常并输出异常信息。最后在finally块中关闭文件流。

示例2:数据库连接异常处理

代码如下:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DBQueryDemo {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
            ps = conn.prepareStatement("select * from user");
            rs = ps.executeQuery();
            while (rs.next()) {
                System.out.println(rs.getString("name"));
            }
        } catch (ClassNotFoundException e) {
            System.out.println("找不到数据库驱动类:" + e.getMessage());
        } catch (SQLException e) {
            System.out.println("数据库操作异常:" + e.getMessage());
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
                if (ps != null) {
                    ps.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                System.out.println("关闭数据库连接失败:" + e.getMessage());
            }
        }
    }
}

上述代码中,连接MySQL数据库,若出现异常,则捕获异常并输出异常信息。最后在finally块中关闭数据库连接、Statement和ResultSet等资源。

以上就是Java中try catch处理异常示例的完整攻略,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中try catch处理异常示例 - Python技术站

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

相关文章

  • Tomcat9使用免费的Https证书加密网站的方法

    Tomcat9使用免费的Https证书加密网站的方法 Tomcat9是一款流行的Web应用服务器软件,在进行网站开发时,保障用户数据传输安全是必不可少的,并且在互联网时代中,采用Https协议来保障用户数据传输安全也成为了一种标配。免费的Https证书有Let’s Encrypt和SSL For Free,本文将详细介绍Tomcat9如何使用免费的Https…

    Java 2023年6月2日
    00
  • 使用springMVC所需要的pom配置

    以下是关于“使用SpringMVC所需要的POM配置”的完整攻略,其中包含两个示例。 使用SpringMVC所需要的POM配置 SpringMVC是一种基于Java的Web框架,它可以帮助我们快速地开发Web应用程序。在使用SpringMVC时,我们需要在项目中添加一些依赖库。本文将讲解使用SpringMVC所需要的POM配置。 添加SpringMVC依赖 …

    Java 2023年5月17日
    00
  • Spring Data JPA实现排序与分页查询超详细流程讲解

    下面就是关于“Spring Data JPA实现排序与分页查询超详细流程讲解”的完整攻略,包含以下内容: 步骤一:导入必要的依赖和配置 首先需要确保在你的项目中已经导入了Spring Data JPA相关依赖,包括spring-data-jpa、hibernate-core、mysql-connector-java等。在pom.xml中添加以下依赖: &lt…

    Java 2023年5月20日
    00
  • Java 替换字符串中的回车换行符的方法

    Java 替换字符串中的回车换行符的方法可以通过使用正则表达式来实现。以下是完整的示例攻略: 方法一:使用 replaceAll() 方法 可以使用 replaceAll() 方法将字符串中的回车换行符替换为其他内容。需要使用正则表达式 “\r|\n” 匹配回车换行符,并使用 replaceAll() 方法将其替换为需要的内容。具体示例代码如下: Strin…

    Java 2023年5月27日
    00
  • 如何让java只根据数据库表名自动生成实体类

    让我来讲解一下如何让Java只根据数据库表名自动生成实体类的完整攻略。 1. 创建Maven工程 首先,我们需要创建一个Maven工程,用于管理我们的项目依赖和构建。 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.or…

    Java 2023年5月20日
    00
  • Java动态代理四种实现方式详解

    《Java动态代理四种实现方式详解》是一篇详细介绍Java动态代理技术的文章,本文将从以下几个方面逐一介绍: 什么是Java动态代理 Java动态代理的特点 Java动态代理的四种实现方式 实现示例 总结 1. 什么是Java动态代理 Java动态代理是指在程序运行过程中动态生成代理类的技术。相比于静态代理需要手动编写代理类,动态代理可以让程序更加灵活,更容…

    Java 2023年5月18日
    00
  • Java常用集合与原理解析

    Java常用集合与原理解析 集合概述 Java中提供的集合框架是一个用于存储和处理数据的统一框架。集合框架可以存储在内存中,也可以存储在磁盘或数据库中。常用的集合有 List,Set 和 Map 等,它们都是接口,它们的具体实现由不同的类实现。 集合分类 Java中的集合框架可以分为以下两大类: Collection 接口:它是所有集合框架的根,该接口规定了…

    Java 2023年5月26日
    00
  • SpringBoot应用的打包和发布实现

    打包和发布Spring Boot应用可以使用多种方法,下面是一些常见的方法: 方法一:使用Maven插件打包并上传到服务器 步骤一:使用Maven构建Spring Boot应用 在pom.xml文件中添加以下依赖: <!– 引入Spring Boot的pom依赖 –> <parent> <groupId>org.spr…

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