黑马程序员技术交流社区

标题: 异常问题? [打印本页]

作者: 黄湘怡    时间: 2011-11-8 04:34
标题: 异常问题?
throws 与 try catch 的区别是什么?
作者: 王赫麟    时间: 2011-11-8 08:12
try catch 是考虑到try包含这段代码可能会遇到这种异常,直接用catch捕获处理,catch包含的代码为处理代码
throws是直接把异常抛出去,如果上层代码有处理,就交给上层代码处理
两种方式:

try
{
//可能会出现的异常代码
}
catch(Exception e)
{
//如果代码出现异常就执行这些代码
}

public void getXXX() throws Exception  //如果出现异常,把异常提交给java虚拟机,让java虚拟机自动处理
{
有异常的代码
}
作者: 高双武    时间: 2011-11-8 08:22
在try{}中的函数在声明时如果throw了一个异常,我们在try{}中调用该函数的时候,必须用catch{}语句捕获异常,或者继续throw异常,不去解决调用函数抛出的异常
作者: SilenceSea    时间: 2011-11-8 08:28
throws如果发生了对应的错误后,下边的的确不会被执行;
try catch的理解应该辩证点看:如果catch后没有再次throw出去,那会继续执行;要想不执行必须throw处理
throws 抛出异常,解决不了再向上,直道碰到能解决这个异常的处理程序,就好像你的上司让你执行一项任务,中途你遇到问题不知道如何解决,你把问题返还给你的上司,认为既然是T分配的任务就该知道如何解决这个问题,你的上司无法解决同样把它送给经理解决,依次向上,直到有人能解决这个问题为止(不想自己另外写代码处理异常时非常有用)
try catch 则是考虑到try包含这段代码可能会遇到这种异常,直接用catch捕获处理,catch包含的代码为处理代码

throws 只是把一个异常抛出去了,如果你的上层代码有处理方式,就由上层代码来处理这个异常。
而try/catch对是清楚的知道该操作可能出现什么异常,同时在catch块中应该有处理的方法。
而且还有一种方式就是try/catch/finaly的方式。

Throws是把异常返回给调用者,由调用者处理,调用者还是要try/catch,跑不掉的
catch中就一个简单的SYSTEM.OUT.PRINTLN(…………);还有,连接数据库时会连接不上,你也不知道是驱动问题、电脑问题还是网络问题,发给用户,用户也看不懂,所以统统throws给catch,提示请与管理员联系。。。。。。这就简单多了

throws 写在方法签名后,
throw 写在方法体内,可以写在if()....
也可以catch住一个exception后立刻又把他throw 出去,什么处理也不做,还可以catch住后throw new 一个你自己定义的exception ....

throws 就是把异常抛出,但是在以后要不有个catch接受,要不就抛给主函数.就是逐级往上一级抛,直到有一个接受他的


作者: 张翼    时间: 2011-11-8 09:55
throw 的作用是抛出异常, 作用于方法,而try的作用是寻找可能存在的异常,应用于表达式,一旦找到将被catcH执行。
作者: 黄湘怡    时间: 2011-11-8 23:22
恩,我明白了,try是语句中包含可能会产生的异常的语句,catch是用来捕获并处理try中抛出的异常的代码。
而throw是用来从代码中主动抛出异常~!
作者: 刘福双    时间: 2011-11-8 23:26
throws捕捉异常直接抛出 try{}里出现的错误在cath捕捉并且执行cath块里的代码
作者: 肖瑞军    时间: 2011-11-8 23:45
throws     抛出异常,解决不了再向上直道碰到能解决这个异常的处理程序,就好像你的上司让你执行一项任务,中途你遇到问题不知道如何解决,你把问题返还给你的上司,认为既然是她分配的任务就该知道如何解决这个问题,你的上司无法解决同样把它送给经理解决,依次向上,直到有人能解决这个问题为止。(不想自己另外写代码处理异常时非常有用)
try   catch       则是考虑到try包含这段代码可能会遇到这种异常,直接用catch捕获处理,catch包含的代码为处理代码!
作者: 七分饱    时间: 2011-11-8 23:56
throws直接,try catch预防;

学习中……




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2