JAVA静态代码块的异常,怎样才可以向上抛啊,急啊 

解决方案 »

  1.   

    大胆的抛,最后都会给main,main也可以抛给java运行时
      

  2.   

    在方法后面throws Exception就行了
      

  3.   

    啥不说,直接在main()后面throws Exception
      

  4.   

    直接在main()后面throws Exception确实是简化了操作,但是这是一种不负责的表现,当系统出现异常时你就找不到具体的异常位置了,所以不建议这样用的!
      

  5.   

    静态代码块中的异常原则上必须处理,不应该也不能再往上抛
        原因:在类加载器,加载该类时,首先执行的就是static{}块中的代码,
            如果static{}块中的异常没有处理,异常就会导致该类加载失败,
            也就是说“该类夭折,不存在”,显然与其相关的操作肯定就不能执行当然了,如果你“不得不”向外抛可以这样写:(用InputStream举例,可根据你自己的代码修改一下)
    static{
    try {
    InputStream inputStream = new FileInputStream("") ;
    } catch (FileNotFoundException e) {
    // 抛出 运行式异常 (这样写,实质上也应该算是处理了异常)
    throw new RuntimeException(e) ;
    }
    }
     
      

  6.   

    Java 规定 静态块中不能抛出异常,如果内部语句出现异常,必须在静态块内处理
      

  7.   

    8楼正确!throw new java.lang.RuntimeException();
      

  8.   

    静态代码块中可以抛出:
       throw new ExceptionInInitializerError(e);