在java中捕获一个方法?

che*_*rit 5 java exception-handling try-catch-finally

我已经搜索了一些答案,但找不到,因此我将此作为一个新问题提出来.try-catch中的catch方法.这是一种方法吗?,它将Exception类型的对象作为参数.但如果它是一种方法,

  1. 谁调用此方法以及调用此方法的对象?

  2. 你不能正常在另一个方法定义中写一个方法定义.所以如果它是一个方法,我怎么能在另一个方法中写入catch?

  3. 如果它不是一种方法,那么它是什么?

     public void foo() {
    
         try { ; 
    
         } catch (Exception ex) {
    
              ; // this is catch method body 
          }
    
    }
    
    Run Code Online (Sandbox Code Playgroud)

上面的代码意味着catch方法体在另一个方法foo()的体内.

Mic*_*rry 11

不,它是一个特殊的Java构造,表示如果Exception捕获了要运行的代码块,它不是方法.该代码块确实采用了一个参数(各种类型),这是捕获然后处理的例外 - 但这并不能使它成为一种方法.

正如评论中指出的那样,它类似于if语句(你可以将它视为一个"参数",这是一个布尔表达式,但同样这也不是一种方法.)


rad*_*lin 5

它是一种类似于if或while或for的语言结构