黑马程序员技术交流社区
标题:
throws和try catch什么时候使用呢?
[打印本页]
作者:
Cola
时间:
2013-12-27 19:44
标题:
throws和try catch什么时候使用呢?
本帖最后由 Cola 于 2013-12-28 11:30 编辑
我知道它们在出现异常的时候使用,throws写在函数上,throw和try catch写在函数内。下边的例子,main方法上的throws NoPlanException,是否注释都可以运行,请问throws应该在哪里是必须写的呢,这里为什么写,不写都行呢?
class ExceptionTest
{
public static void main(String[] args) //throws NoPlanException
{
Teacher t=new Teacher("Zhang",new Computer());
try
{
t.prelect();
}
catch (NoPlanException e)
{
System.out.println(e.toString());
System.out.println("换老师或者放假");
}
}
}
复制代码
作者:
汪伟楠
时间:
2013-12-27 20:00
当在内部出现了throw抛出异常的对象,那么就必须要给对应的处理动作,要么在内部try catch处理,要么就在函数上声明叫调用者处理,在一般的情况下,函数内出现异常,函数上需要声明。
class ExceptionTest
{
public static void main(String[] args) //throws NoPlanException
{
Teacher t=new Teacher("Zhang",new Computer());
try
{
t.prelect();
}
catch (NoPlanException e)
{
System.out.println(e.toString());
System.out.println("换老师或者放假");
}
}
}
在你的这个程序里,里面有了相对应的解决方法了,所以在函数上就没有不要在声明异常了!
作者:
Cheers_for_CRAZ
时间:
2013-12-27 20:10
首先,异常如果产生了,是不是要进行处理?有两种方式,一是向上一级抛出,而是进行捕获
当一个调用者调用方法时,这个方法产生了异常,这时候可能有多种处理方式,如果这时候不知道如何处理,这种异常一般交给调用者处理,这时候一般用throws,throws一般是向上一级抛出异常,也就是抛给调用者,交由调用者处理。
当你知道如何处理异常时,这是侯就直接对异常捕获处理。就用try catch。
你上面的代码已经对异常进行了处理,所以这时候就不进行抛出。
作者:
其LovE斤
时间:
2013-12-27 21:33
出现异常后 处理动作只有两个 要么抛throws 要么 try catch
这两个动作只需要做一个就可以了。
thrwos 是抛给了你的上一级。是说 这个异常我处理不了。。你帮我干吧。
try catch 是自己处理。自己能处理。自己都处理了。抛出去没意义了。
还有一种是在catch中抛。
catch (NoPlanException e)
{
System.out.println(e.toString());
System.out.println("换老师或者放假");
throw new Exception("我接着抛");//这种的你在方法上也需要throws
//这样可以在遇到异常后进行一些特殊操作后再
//抛出异常给上一级处理
}
还有一种是RuntimeException 这种不需要抛。
API说的很好 RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。
可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2