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 等)
相关推荐
子兮曰2 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
小羊没烦恼!2 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
子兮曰2 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
俊昭喜喜里2 天前
java中的继承和多态的区别
java
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
爱勇宝2 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
譕痕2 天前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码2 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖2 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时2 天前
01-06-A-JVM排查实战详解
java·jvm