在方法中用了throws exception抛出异常,调用这个方法的时候就必须用try{}catch{}但是有些API中定义的方法用后面也抛出异常..但是可以不用try{}catch{}..也可以运行啊..
这是怎么回事呢??

解决方案 »

  1.   

    你可以接着throws exception呀,把异常抛到方法外
      

  2.   

    try catch是对局部范围的异常捕获,异常应该小于方法所抛出的异常,两者都是对异常的处理方式,可以分开使用,也可以联合使用,但联合使用try catch所捕获的异常不能高于抛出的异常,否则很可能一部分异常无法进行捕获
      

  3.   

    异常分为 RuntimeException 和checked exception,java的runtimeException 是
    运行时异常,我们可以不处理
    checked 异常也就是我们经常遇到的IO异常,以及SQL异常等需要处理
      

  4.   

    顶楼上的,抛出的异常时RuntimeException或者其子类不捕获编译时不会报错的
      

  5.   

    两者都是对异常的处理方式,可以分开使用,也可以联合使用,但联合使用try catch所捕获的异常不能高于抛出的异常,否则很可能一部分异常无法进行捕获
      

  6.   

    import java.io.*;
    public class stud
    {
    public static void main(String [] args)throws Exception
    {
    BufferedReader s=new BufferedReader(new InputStreamReader(System.in));
    char t;
    System.out.println("Enter a character :");
    t=s.readLine();
    if((t=='a')||(t=='e')||(t=='i')||(t=='o')||(t=='u'))
    {
    System.out.println("The entered character is nomal .");
    }
    else
    {
    System.out.println("The entered character is anament .");
    }
    }
    }看下这个小程序。.  没有用 TRY CATCH
      

  7.   

    哦..我明白了..
    但是现在哪些属于cheked exception哪些发球runtimexception
      

  8.   

    可以的1,throws  Exception2,try  catch
      

  9.   

    方法名 throws Exception{
    }
      

  10.   

    你可以接着throws exception呀,把异常抛到方法外
      

  11.   

     这下还给我搞晕了..我看到了API上有很多方法后面都跟着throws exception 有些不用try{}catch{}也可以运行啊.. 
      

  12.   


    可以当前用try  catch 处理
    也可以继续抛,throws  Exception,由外层进行处理,如果外层还不处理,继续向外层抛。。
      

  13.   

    throws exception这就是抛出了异常,抛给它的上一层,如果最好main方法也是throws exception的话就是交给系统去处理异常。excpetion是所以运行时异常的父类,所以抛出exception,所以异常都可以不捕获也能编译通过。但是异常有很多类型,用这种方法处理异常的话,当发生异常时,你并不能确定是发生的什么异常。
      

  14.   

    import java.io.*;
      public class InAndOut {
        public static void main(String[ ] args) throws IOException {
          BufferedReader br = null;
          char buf[ ] = new char[20];
          int i;
          int len = 0;
          String str;
          try {
            br = new BufferedReader(new InputStreamReader(System.in));
            System.out.print("请输入一行字符,以回车结束:");
            len = br.read(buf, 0, buf.length);  //读入到buf数组中
            //注意输入字符不能超过数组容量,一个中文算一个字符
            System.out.print("你输入的内容是:");
            System.out.print(new String(buf, 0, len));
            System.out.print("请输入一个整数,以回车结束:");
            str = br.readLine();  //读入的是字符串
            i = Integer.parseInt(str);  //把字符串转化为整数
            //此时可能抛出NumberFormatException
            System.out.println("你输入的整数是:" + i);
          } catch(IOException e) {
            System.out.println("输入输出异常:" + e.toString());
          } catch(NumberFormatException e) {
            System.out.println("数据格式错误:" + e.toString());
          } finally {
            if (br != null) { br.close(); }
          }
        }
      }
    这句话里面为什么非要有throws IOException 呢如果是在main方法里写就没意义的,,不是吗???