求助 大家好,我想问一下throws和trycatch两者该怎么样使用?什么时候用前者,什么时候用后者。两者是不是可以互换使用呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你想暂时不处理异常时,用throws,交给上一级处理!!trycatch的话,就在这一级捕捉异常,并处理throws 相当于援兵之计,到最顶层就不能throws啦~一般情况,最好写try catch,但也得看情况 当你处理不了这个异常,需要将异常抛出时用throws ,一般用在较底层的程序中当你可以或者必需对程序抛出的异常处理时,就用trycatch,一般用在上层的程序中 你想暂时不处理异常或当前没有能力处理时,用throws,try{}catch{}当前捕获处理throws 交由上级处理 你处理 不了的 情况 让你 上级处理 这时 用throws你能 处理的就不要 老去问你 上级,否则你的上级 会说你 没有 思想 没有独立解决问题的能力的这时 用 try catch trycatch就是比throws多了可以处理问题的能力 处理了问题可以不影响程序的进行而throws就不行 出错会终止程序 两个都是在编写一个方法的时候用。throws 是说,我这个方法可能会抛出某种异常,自己的方法内不解决,把异常抛给那些来调用它的方法,让它们想办法解决这个异常。try catch是,我这几个代码段可能会抛出某种异常,自己解决。对那些调用这个方法的方法来说,就不需要为这个异常想办法了,这个异常对他们来说是无需考虑的。 是你可以处理的并应该处理的你就try catch{}是你处理不了的或者能处理但不是你责任范围之内的的(呵呵,看你人品啦)你就throw掉 说的很好,可以参考以下代码 public class TestSycronized implements Runnable{ int b = 100;public synchronized void m1() throws Exception{ b =1000; Thread.sleep(5000); System.out.println("b ="+b); } public void m2(){System.out.println(b); }public synchronized void run(){ try{ m1(); }catch (Exception e){ e.printStackTrace(); } } public static void main(String[] args) throws Exception{ TestSycronized ts= new TestSycronized(); Thread t =new Thread(ts) ; t.start(); Thread.sleep(1000); ts.m2(); }} 通过throws-try-catch总能找到一个地方来处理异常,这在business logic中就显得格外重要了。 处理繁杂的业务逻辑 会有很多java库的异常和自己写的异常 这时如何决定是处理掉还是向上抛出,将决定你的系统是否合理这在写小程序中体现不多 当程序一旦写大了 见到异常就 处理 会很多的冗余,繁杂 让人思路混乱在底层的程序将 具体的异常 向上抛出 很赞成在中层的程序接受了异常 一些归类的异常统一的处理 这样很清晰,还可以将异常处理了但接着抛出一类报告异常 也就是向顶层报告出了什么哪一类事 这样就会让程序 请大家帮个忙,我想把文件上传到另外服务器上 [求助]写入sql语句insert失败了.(只有这句失败了) 一道外企Java笔试题! JPanel 如何改背景颜色 高分,求简单树形结构代码,实现即给分。。。 求一段代码,想了很久的了 如何在eclipse中输入命令行参数 一个关于循环的小问题 急:jBuilder8的问题 用法java是否可以实现底层协议,如链路层协议,ip,tcp协议 java线程问题 在线等,紧急求助,紧急求助!
trycatch的话,就在这一级捕捉异常,并处理throws 相当于援兵之计,到最顶层就不能throws啦~
一般情况,最好写try catch,但也得看情况
当你可以或者必需对程序抛出的异常处理时,就用trycatch,一般用在上层的程序中
try{}catch{}当前捕获处理
throws 交由上级处理
而throws就不行 出错会终止程序
throws 是说,我这个方法可能会抛出某种异常,自己的方法内不解决,把异常抛给那些来调用它的方法,让它们想办法解决这个异常。try catch是,我这几个代码段可能会抛出某种异常,自己解决。对那些调用这个方法的方法来说,就不需要为这个异常想办法了,这个异常对他们来说是无需考虑的。
是你处理不了的或者能处理但不是你责任范围之内的的(呵呵,看你人品啦)你就throw掉
说的很好,可以参考以下代码 public class TestSycronized implements Runnable{
int b = 100;public synchronized void m1() throws Exception{
b =1000;
Thread.sleep(5000);
System.out.println("b ="+b);
} public void m2(){
System.out.println(b);
}
public synchronized void run(){
try{
m1();
}catch (Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception{
TestSycronized ts= new TestSycronized();
Thread t =new Thread(ts) ;
t.start();
Thread.sleep(1000);
ts.m2();
}}
通过throws-try-catch总能找到一个地方来处理异常,这在business logic中就显得格外重要了。
这时如何决定是处理掉还是向上抛出,将决定你的系统是否合理
这在写小程序中体现不多 当程序一旦写大了 见到异常就 处理 会很多的冗余,繁杂 让人思路混乱
在底层的程序将 具体的异常 向上抛出 很赞成
在中层的程序接受了异常 一些归类的异常统一的处理 这样很清晰,还可以将异常处理了但接着
抛出一类报告异常 也就是向顶层报告出了什么哪一类事 这样就会让程序