下面就是“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技术站