Java 为什么不';我们有时不使用抛出新异常吗?
例如,在这个方法中:Java 为什么不';我们有时不使用抛出新异常吗?,java,oop,servlets,web-applications,Java,Oop,Servlets,Web Applications,例如,在这个方法中:protectedvoiddopost(HttpServletRequest-req,HttpServletResponse-resp)抛出ServletException,java.io.IOException{} 抛出新的ServletException,java.io.IOException;未在方法定义中使用。为什么呢?谁能告诉我为什么?我是java新手 在下面的代码中,使用了throw,为什么在上面抛出异常的方法中不使用throw呢 class SomeClas
protectedvoiddopost(HttpServletRequest-req,HttpServletResponse-resp)抛出ServletException,java.io.IOException{}
抛出新的ServletException,java.io.IOException;未在方法定义中使用。为什么呢?谁能告诉我为什么?我是java新手
在下面的代码中,使用了throw,为什么在上面抛出异常的方法中不使用throw呢
class SomeClassName {
void show() throws Exception
{
throw new Exception();
}
}
抛出新异常
“创建”异常,而抛出异常
只是将遇到的任何异常“抛出”到调用方方法 抛出异常
和抛出新异常()代码>做完全不同的事情
抛出异常
是方法签名的一部分,并指定“允许此方法抛出异常
s”
抛出新异常()
是一条实际引发异常的语句
class SomeClassName {
void show() throws Exception
{
throw new Exception();
}
}
这是无效的(因为throw
不能是方法签名的一部分):
这也不是(因为抛出异常不是一条语句):
从字面上看,抛出“本身意味着它应该与一种行为相关联。”抛出”表示它应与动作关联
类似地,抛出
,因为行为与方法
签名相关联
public void test() throws CutomException{
//do whatever
throw new CustomException
}
前面提到的方法
具有抛出自定义异常
(抛出
)的特性,如果在方法
主体内触发,则执行相同的操作(抛出
)。抛出和抛出是两件不同的事情。Google themIt没有显式地抛出ServletException
,但它调用了其他方法。阅读:同样的原因,我们写public int getNumberOfCats(){
而不是public return 1;getNumberOfCats(){
我的问题是,为什么在抛出方法中不使用抛出。那么,如果抛出方法不能抛出异常,那么编写抛出的目的是什么呢?
public void test() throws CutomException{
//do whatever
throw new CustomException
}