public class CheckEx {
   public void check() throws  IOException{};
public static void main(String[] args)  {
     new CheckEx().check();
}}
问:第四行为什么会编译不通过呢,thanks

解决方案 »

  1.   

    public static void main(String[] args) 
    这句应该也要网上抛异常
    改成public static void main(String[] args) throws Exception
    试试
      

  2.   

    因为你没有异常处理!
    两种办法,一种就是在main方法中抛出异常,
    public static void main(String[] args) throws IOException {
       new CheckEx().check();
     }另一种方法就是在main方法内捕获异常:
    public static void main(String[] args) {
    try{
       new CheckEx().check();
       }catch(IOException e){
         e.printStackTrace();
       }
    }
      

  3.   

    方法既然抛出了异常,在调用时当然要捕获啊,也就是try,要不然你抛出有什么意义?
    建议使用eclipse学习Java,会少走很多弯路,像这个错误,直接就会提示你了
      

  4.   

    为什么就不要写呢?难道main方法里就允许错误吗?
    还有,方法后加了throws后,调用该方法必须try,这是语法规定!不要妄想推翻这个规定,这是语法要求,语法,就是用来记住的,除非以后自己开发一种语言,一切语法你来定
      

  5.   

    因为你抛出的异常并没有处理,如果你先用try catch包起来马上处理的话,就不需要
    就好像你是个普通老百姓找人维权,别人总是推卸责任,让你找上级,异常一直往上抛,但是最终是要处理的
    main已经是最高级里,从这里抛出将由虚拟机处理
      

  6.   

    不想try,那么就把异常继续往上抛
      

  7.   

    最好在你调用相应抛出异常方法的地方去捕获这个异常。除了Runtime之外。