哈哈, g() 是调用 f()的。  但是没有申明 throws RuntimeException改成如下:private static void g() throws RuntimeException{
  f();
}

解决方案 »

  1.   

    public static void main(String[] arg){
           staticRunexception.h();
      }
      

  2.   

    tom2005(快乐着) 的才是对的   
    运行一下就知道了
    注意是Runexception!!!!!!!!!!!!!!!!!!!!!!!!
      

  3.   

    主函数怎么是private,当然报错,改成public就可以了。
      

  4.   

    不好意思,贴的时候给写错了,主函数是public的,原来的形式如下:
    public  class  staticRunexception  {  
       private  static  void  f()  throws  RuntimeException{  
           System.out.println("Exception  from  f()");  
           throw  new  RuntimeException("from  f()");  
       }  
       
       private  static  void  g(){  
                 f();  
       }  
       public  static  void  h()throws  RuntimeException{  
         try{g();}  
                     catch(Exception  ex){  
                     System.err.println("IN  g()  e.prinStackTrace()");  
                     ex.printStackTrace();  
                     }  
       }  
         
       public  static  void  main(String[]  arg){  
                 staticRunexception.h();  
       }  
    }  
    编译可以运行,由“throw  new  RuntimeException("from  f()"); ”可知,肯定由异常抛出,可是我不知道这种设计错在哪里,请大家再看看!
      

  5.   

    private static void f() throws RuntimeException{
        System.out.println("Exception from f()");
        throw new RuntimeException("from f()");//去掉这一句,运行时异常不能自己抛出吧?!!
    }然后把main函数改成public的就可以运行了
      

  6.   

    我想这个程序也就是想考一下被检查的异常和运行时异常之间的差别,RuntimeException可以在不被report的情形被抛出,所以程序里面的throws RuntimeException都可以不要,一般这种异常是可以避免的,如访问数组:(for int i = 0; i < arr.length; i++),这样就绝对不会出现ArrayIndexOutOfBoundsException,     再有,像调用一个函数,你送进去的对象如果是null,那么NullPointerException被抛出如果你确定你送进去的对象是已经被初始化的,那就不会有这样的情况关于被检查的异常,如你用FileReader对文件进行操作,如果文件不存在,那你所有的操作都没意义了,所以你在构造一个FileReader的对象时,你得用throws FileNotFoundException这一句明确的告诉被调用的人,这个异常可能会被抛出,呵呵,说了一大堆,楼主最好找点这方面的资料看看比较好,上面的仅供参考
      

  7.   

    一堆垃圾,抛出RuntimeException?晕死。