请问:throws 与 try{ }catch() 到底有什么区别??
private void writeToFile() throws IOException{
RandomAccessFile oSavedFile = new RandomAccessFile("c:\\down.htm", "rw");
byte[] buffer = html.getBytes();
oSavedFile.write(buffer, 0, buffer.length);
}
private void writeToFile(){
     try{
RandomAccessFile oSavedFile = new RandomAccessFile("c:\\down.htm", "rw");
byte[] buffer = html.getBytes();

         oSavedFile.write(buffer, 0, buffer.length);
        }catch(IOException e){  }
}这样两种写法到底有什么好处与坏处啊?谢谢!~~

解决方案 »

  1.   

    throws :抛触异常,交给父类处理,可以在父类里统一的写异常处理....
    try{ }catch() :异常处理..在容易出现异常的地方用...
      

  2.   

    private void writeToFile() throws IOException
    这么写就是凡调用到writeToFile()的地方都必须try&catch,当然你也可以在private void writeToFile() throws IOException
    内部就完成try&catch的任务,那样的话就可以去掉throws IOException了private void writeToFile() {
    try{
    RandomAccessFile oSavedFile = new RandomAccessFile("c:\\down.htm", "rw");
    byte[] buffer = html.getBytes();
    oSavedFile.write(buffer, 0, buffer.length);
    }catch(IOException ioe){
    }
    }
    道理是一样的
      

  3.   

    throws 就是遇到相应的异常时,扔出去,此时调用这个方法的地方就必须处理这个异常了
    try{}catch(){}就是捕获异常
    编写一个方法时,如果一些异常自己能处理,最好自己用try{}catch(){}作内部处理,免得别人调用时,还麻烦的处理该异常,但有些异常是有必要交给调用它的人去处理的,或自己不好处理的,此时throws就可以了
      

  4.   

    throws就是抛出"异常"这个"东西"
    catch()就是接住"异常"这个"东西",然后在{...}中处理它
    try{}就是"试试"{..}中的代码中有没有异常,有就抛出它
      

  5.   

    搞错了
    throws是带throws的方法(如方法A)中如果有异常,那这个方法A自己不去处理这个异常,而是交给调用他的方法或者父类处理也就是说,throws是接别人传过来的,(或自己产生)完了再传出去
    也可以说,这个方法处理这个"异常"的方式是:再抛出.(就像消费者找商家,商家说我不管,throws给厂家 ^_^)throw才是自己抛出一个
    也就是说这个带throw的方法,如方法B,他执行完{}代码后会,而且肯定会抛出一个异常,那么调用这个方法的类,必须接住这个异常
      

  6.   

    总结一下,乱的很try{}就是"试试"{..}中的代码中有没有异常,有就抛出它
    catch()就是接住"异常"这个"东西",然后在{...}中处理它
    throws就是在方法的{}中如果有异常产生,那么处理这个异常的方式是:再抛给上一级.
    throw就是处理完方法的{}中的代码之后,这个方法会,而且肯定会抛出一个异常.
      

  7.   

    举个例子吧:你朋友送你一样家用电器,但是在送给你的时候他告诉你,这个东西在使用过程中可能会出现一些问题,比如突然断电什么的;你打算使用这个电器,所以你要时刻记住你朋友的话,要很警惕,这时你就是在"try{}";有一次使用过程中,你朋友说的问题终于发生了,为了不让这个电器对你家造成什么伤害,你做了一些妥善的处理,比如维修它,或者把它销毁了,这时你在"catch() {} ";如果你是一个特胆小的人,不敢用这个电器,而是打算把它送给另一个朋友,那么出于常理,你会像别人在送给你时一样,把这个电器在使用时可能会出现的问题告诉给你的下一个朋友,这时你在采用throws声明异常。
      

  8.   

    看你需要了 如果try..catch(..)了 调用层就不必作处理否则就得再调用层处理异常 如果这里是业务的关键部分建议不要这样做而是采用throws ..的方法将异常抛出
      

  9.   

    你是程序员,Coding的时候发现有问题,怎么办?两种办法:1、能搞定的自己解决2、搞不定的上报组长,包括自己先处理一下再上报组长
      

  10.   

    throws是修饰方法的,而try和catch是方法里的东西.
    throw是"抛",try是"查并接",catch是"处理"
    没有了throw就没有try catch了
      

  11.   

    答:throws用于声明一个方法会抛出哪些异常。而throw是在方法体中实际执行抛出异常的动作。
      
      如果你在方法中throw一个异常,却没有在方法声明中声明之,编译器会报错。
      
      注意Error和RuntimeException的子类是例外,无需特别声明。
      
      
      你可以在方法中拦截底层异常并处理之,也可以抛给更高层的模块去处理。
      
      你也可以抛出自己的异常指示发生了某些不正常情况。常见的拦截处理代码如下:
      try
      {
      ...... //以下是可能发生异常的代码
      ...... //异常被抛出,执行流程中断并转向拦截代码。
      ......
      }
      
      catch(Exception1 e) //如果Exception1是Exception2的子类并要做特别处理,应排在前面
      {
      //发生Exception1时被该段拦截
      }
      catch(Exception2 e)
      {
      //发生Exception2时被该段拦截
      }
      finally //这是可选的
      {
      //无论异常是否发生,均执行此段代码
      }
      

  12.   

    throws抛出异常给调用它的方法,就是让调用他的方法出处理这个异常,如果调用他的方法也不处理,还可以声明抛出,直到抛出JVM.try{}catch(){}就是在当前方法中处理
      

  13.   

    throws是把异常的处理权交给调用者,让调用者进行处理;
    而try{}catch{}是将异常捕获自行处理
      

  14.   

    很简单,在自己的方法中能够处理的异常,就try catch,自己的方法不能够处理的异常,就throw给调用该方法的上层处理.
      

  15.   

    throw 就是把异常丢给上一级。
    try catch是防守如果出现异常。就用catch来处理
      

  16.   

    liang8305(七分之雨后) 说的很详细
      

  17.   

    binny(骑个破车看夕阳) ( ) 信誉:98 
    你是程序员,Coding的时候发现有问题,怎么办?两种办法:1、能搞定的自己解决2、搞不定的上报组长,包括自己先处理一下再上报组长
    ===================================================
    这位老兄解释得很容易懂。1,能搞定的,try...catch...然后自己处理。
    2。搞不定的,throws 给调用的地方,老大,出错了,交给你处理了。