Java 常见场景中需要使用 try 的示例集

Java 常见场景中需要使用 try 的完整示例集 ,覆盖 文件操作、数据库、网络请求、线程、MinIO、日期解析等,并逐行注释,便于直接参考或套用。


1️⃣ 文件操作(File I/O)

java 复制代码
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public void fileExample() {
    // 读取文件
    try (FileInputStream fis = new FileInputStream("data.txt")) {
        int data = fis.read();
        System.out.println("读取成功:" + data);
    } catch (IOException e) {
        // 捕获文件不存在或读取失败的异常
        e.printStackTrace();
    }

    // 写入文件
    try (FileOutputStream fos = new FileOutputStream("output.txt")) {
        fos.write("Hello World".getBytes());
    } catch (IOException e) {
        e.printStackTrace();
    }
}

2️⃣ 数据库操作(JDBC)

java 复制代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public void jdbcExample() {
    Connection conn = null;
    try {
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
        // 执行 SQL 操作...
        System.out.println("数据库连接成功");
    } catch (SQLException e) {
        // 捕获连接失败或 SQL 错误
        e.printStackTrace();
    } finally {
        // 关闭连接
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

3️⃣ 网络请求 / HttpClient

java 复制代码
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;

public void httpExample() {
    try {
        URL url = new URL("http://example.com");
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        int code = conn.getResponseCode();
        System.out.println("响应码:" + code);
    } catch (IOException e) {
        // 捕获网络异常
        e.printStackTrace();
    }
}

4️⃣ 日期解析

java 复制代码
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

public void dateExample() {
    String dateStr = "2025-12-04";
    try {
        LocalDate date = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        System.out.println("解析成功:" + date);
    } catch (DateTimeParseException e) {
        // 捕获解析失败异常
        e.printStackTrace();
    }
}

5️⃣ MinIO 文件操作

java 复制代码
import io.minio.MinioClient;
import io.minio.errors.MinioException;
import java.io.InputStream;

public void minioExample(MinioClient minioClient) {
    try {
        // 判断文件是否存在
        boolean exists = minioClient.statObject(
                io.minio.StatObjectArgs.builder()
                        .bucket("bucketName")
                        .object("file.txt")
                        .build()
        ) != null;
        System.out.println("文件存在:" + exists);
    } catch (MinioException e) {
        // 文件不存在或其他异常
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

6️⃣ 多线程执行

java 复制代码
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

public void threadExample() {
    CompletableFuture<Integer> future = CompletableFuture.supplyAsync(() -> {
        return 10 / 0; // 会抛出异常
    });

    try {
        int result = future.get(); // 获取结果,可能抛异常
    } catch (InterruptedException | ExecutionException e) {
        // 捕获线程中抛出的异常
        e.printStackTrace();
    }
}

7️⃣ JSON 解析(Jackson / Gson)

ini 复制代码
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public void jsonExample() {
    String jsonStr = "{ invalid json }";
    try {
        ObjectMapper mapper = new ObjectMapper();
        JsonNode node = mapper.readTree(jsonStr);
    } catch (Exception e) {
        // 捕获解析失败异常
        e.printStackTrace();
    }
}

8️⃣ 统一示例:调用第三方服务(MinIO、数据库、网络等)

scss 复制代码
public void unifiedExample() {
    try {
        // 可能抛多种异常的操作
        jdbcExample();
        httpExample();
        minioExample(new MinioClient.Builder().endpoint("http://localhost:9000").build());
    } catch (Exception e) {
        // 捕获所有异常,保证程序不中断
        e.printStackTrace();
    }
}

✅ 总结

  • 必须使用 try 的场景:

    1. 文件 I/O(FileInputStream、FileOutputStream)
    2. 数据库操作(JDBC / MyBatis-Plus 可选,但事务异常可捕获)
    3. 网络请求(HttpURLConnection / RestTemplate)
    4. 解析外部数据(JSON、XML、日期)
    5. 第三方 SDK(MinIO、AWS S3 等)
    6. 多线程调用 Future.get() 等可能抛异常的方法
    7. 任意可能抛出 Checked Exception 的操作
  • 可选使用 try 的场景:

    • 保护关键逻辑防止运行时异常(NullPointerException、ArithmeticException 等)
相关推荐
Elias不吃糖6 小时前
Java Lambda 表达式
java·开发语言·学习
情缘晓梦.7 小时前
C语言指针进阶
java·开发语言·算法
南知意-8 小时前
IDEA 2025.3 版本安装指南(完整图文教程)
java·intellij-idea·开发工具·idea安装
码农水水9 小时前
蚂蚁Java面试被问:混沌工程在分布式系统中的应用
java·linux·开发语言·面试·职场和发展·php
海边的Kurisu9 小时前
苍穹外卖日记 | Day4 套餐模块
java·苍穹外卖
晚风吹长发9 小时前
初步了解Linux中的动静态库及其制作和使用
linux·运维·服务器·数据结构·c++·后端·算法
毕设源码-邱学长9 小时前
【开题答辩全过程】以 走失儿童寻找平台为例,包含答辩的问题和答案
java
他们叫我技术总监10 小时前
Python 列表、集合、字典核心区别
android·java·python
江沉晚呤时10 小时前
从零实现 C# 插件系统:轻松扩展应用功能
java·开发语言·microsoft·c#
梁下轻语的秋缘10 小时前
ESP32-WROOM-32E存储全解析:RAM/Flash/SD卡读写与速度对比
java·后端·spring