首页 文章

为什么抛出编译时错误?

提问于
浏览
0

为什么这个程序抛出编译时错误,即使我已声明扩展Exception类的Ari类 . 它给我的输出像“未报告的异常Ari;必须被捕获或声明被抛出” .

class Ari extends Exception{ }
 public class Main
 {  
      public static void main(String [] args) 
      {
          try 
          {
           badMethod();  
           System.out.print("A"); 
          }  
         catch (Exception ex) 
         {
          System.out.print("B");  
         } 
         finally 
         {
          System.out.print("C   "); 
         } 
         System.out.print("D"); 
      }  
     public static void badMethod() 
     {
      throw new Ari(); /* Line 22 */
     }   
 }

1 回答

  • 1

    这看起来像Java,它使用"checked exceptions" . 由于您的方法可以抛出 Ari 异常(事实上,它是保证的),方法签名必须声明:

    public static void badMethod() throws Ari {
        throw new Ari();
    }
    

    这建议使用代码来解释此特定异常的可能性,以便可以编写它来处理该异常 .

相关问题