在编程中,try-catch
和 finally
块通常用于处理异常和资源管理
- try:在这个代码块中,你将放置可能抛出异常的代码。如果在此代码块中发生异常,控制流将立即跳转到相应的
catch
块。 - catch:这个代码块用于捕获并处理在
try
块中抛出的特定异常。你可以为不同类型的异常提供多个catch
块。当try
块中的异常被抛出时,相应的catch
块将被执行。 - finally:这个代码块包含无论是否发生异常都需要执行的代码。它通常用于释放资源,如关闭文件、数据库连接或网络连接等。无论
try
块是否成功完成,或者是否有匹配的catch
块,finally
块都将被执行。
下面是一个示例,展示了如何组合使用 try-catch
和 finally
块:
public class TryCatchFinallyExample { public static void main(String[] args) { FileInputStream fis = null; try { fis = new FileInputStream("example.txt"); // 在这里处理文件内容 } catch (FileNotFoundException e) { System.out.println("文件未找到异常: " + e.getMessage()); } catch (IOException e) { System.out.println("I/O 异常: " + e.getMessage()); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { System.out.println("关闭文件时发生异常: " + e.getMessage()); } } } } }
在这个示例中,我们尝试打开一个名为 “example.txt” 的文件。如果文件不存在或无法读取,try
块中的代码将抛出异常。相应的 catch
块将捕获并处理这些异常。无论是否发生异常,finally
块都将执行,尝试关闭文件输入流。