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 等)
相关推荐
0***v77742 分钟前
JavaWeb项目打包、部署至Tomcat并启动的全程指南(图文详解)
java·tomcat
Lear43 分钟前
加密技术全面解析:从原理到实践
后端
回家路上绕了弯44 分钟前
多线程开发最佳实践:从安全到高效的进阶指南
分布式·后端
aiopencode1 小时前
混合开发应用安全方案,在多技术栈融合下构建可持续、可回滚的保护体系
后端
喵个咪1 小时前
初学者导引:在 Go-Kratos 中用 go-crud 实现 GORM CRUD 操作
后端·go
老华带你飞1 小时前
房屋租赁管理|基于springboot + vue房屋租赁管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·毕设
用户2190326527351 小时前
Spring Cloud Alibaba 微服务 K8S 部署完整文档
后端
DashVector1 小时前
如何通过HTTP API删除Doc
大数据·后端·云计算
马卡巴卡1 小时前
Kafka:消费者重试与死信队列的对应模式分析
后端