在 Java 中,我们可以在 try、catch 和 finally 块之间写任何语句吗?
javaobject oriented programmingprogramming更新于 2024/5/11 23:49:00
不可以,我们不能在 try、catch 和 finally 块之间写任何语句,这些块组成一个单元。try 关键字的功能是识别异常对象并捕获该异常对象,并通过暂停try 块的执行将控制权连同识别的异常对象一起转移到catch 块。catch 块的功能是接收由try 发送的异常类对象并捕获 该异常类对象,并将该异常类对象分配给catch 块中定义的相应异常类的引用。 finally 块是无论是否发生异常都会强制执行的块。
我们可以编写 try with catch 块、try with multiple catch 块、try with finally 块和try with catch and finally 块这样的语句,并且不能在这些组合之间编写任何代码或语句。如果我们尝试在这些块之间放置任何语句,它将引发编译时错误
语法
try { // 要监视异常的语句 } // 我们不能在这里保留任何语句 catch(Exception ex){ // 在此处捕获异常 } // 我们不能在此处保留任何语句finally{ // finally 块是可选的,并且仅当存在 try 或 try-catch 块时才存在。 // 无论 try 块中是否发生异常,此块始终都会执行 // 并且发生的异常是否在 catch 块中捕获。 // 仅在 System.exit() 和发生任何错误时才执行 finally 块。 }
示例
public class ExceptionHandlingTest { public static void main(String[] args) { System.out.println("We can keep any number of statements here"); try { int i = 10/0; // This statement throws ArithmeticException System.out.println("This statement will not be executed"); } //We can't keep statements here catch(ArithmeticException ex){ System.out.println("This block is executed immediately after an exception is thrown"); } //We can't keep statements here finally { System.out.println("This block is always executed"); } System.out.println("We can keep any number of statements here"); } }
输出
We can keep any number of statements here This block is executed immediately after an exception is thrown This block is always executed We can keep any number of statements here