我可以在一个班级中有两个以上的最终阻止吗?



我正在做一个项目,我需要执行两个不同的操作。 我的主控制器方法中有一个 finally 块。

我的问题是,我最终可以有两个以上,例如:

class test
{
X()
{
try
{
//some operations
}
finally
{
// some essential operation
}
}
//another method
Y()
{
try
{
//some operations
}
finally
{
// some another essential operation
}
}
}

那么,这可能吗?

每个 try/catch/finally 语句只能有一个finally子句,但可以在同一方法或多个方法中有多个这样的语句。

基本上,try/catch/finally 语句是:

  • try
  • catch(0 或更多)
  • finally(0 或 1)

。但必须至少有一个catch/finally(你不能只有一个"裸露"的try陈述)

此外,您可以嵌套它们;

// Acquire resource 1
try {
// Stuff using resource 1
// Acquire resource 2
try {
// Stuff using resources 1 and 2
} finally {
// Release resource 2
}
} finally {
// Release resource 1
}

我最终可以有两个以上

是的,您可以拥有任意数量的try - catch - finally组合,但它们都应该正确格式化。(即语法应该正确)

在您的示例中,您编写了正确的语法,它将按预期工作。

您可以通过以下方式拥有:

try
{
}
catch() // could be more than one
{
}
finally
{
}

try
{
try
{
}
catch() // more than one catch blocks allowed
{
}
finally // allowed here too.
{
}
}
catch()
{
}
finally
{
}
public class Example {
public static void main(String[] args) {
try{
try{
int[] a =new int[5]; 
a[5]=4;
}catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("Out Of Range");
}finally{
System.out.println("Finally Outof Range Block");
}
try{            
int x=20/0;
}catch (ArithmeticException e)
{ 
System.out.println("/by Zero");                                                                            
}finally{
System.out.println("FINALLY IN DIVIDES BY ZERO");
}
}catch (Exception e) {
System.out.println("Exception");
}
finally{
System.out.println("FINALLY IN EXCEPTION BLOCK");
}
System.out.println("COMPLETED");
}
}

......

相关内容

  • 没有找到相关文章

最新更新