为什么会抛出编译时错误?

时间:2018-01-21 18:13:22

标签: exception exception-handling

为什么这个程序抛出编译时错误,即使我声明了扩展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 个答案:

答案 0 :(得分:1)

这看起来像Java,它使用"检查异常"。由于您的方法可能会抛出Ari异常(实际上, 保证),方法签名必须声明:

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

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