在Java中,关键字(throw)仅用于抛出您创建的异常。如果没有,有人可以举例说明如何在你自己的例外之外使用它。
答案 0 :(得分:4)
throw
任何延伸Throwable
void greet(String name) {
if (name == null) {
throw new IllegalArgumentException("Cannot greet null");
}
System.out.println("Hello, " + name);
}
答案 1 :(得分:2)
不,throw
关键字可以与任何 Exception
一起使用,包括内置的关键字:
throw new IllegalArgumentException("Your value passed in was illegal");
答案 2 :(得分:2)
throw语句中的表达式必须表示 1)变量 或者可分配(第5.2节)类型的引用类型的值 Throwable ,或2)空引用,或发生编译时错误。
例如,考虑下面给出的情况:
public void factorial(int num)
{
if (num < 0 )
{
throw new IllegalArgumentException("Invalid number :"+num);
}
else
//....code for factorial.
}
此处IllegalArgumentException
不是用户定义的异常。它是内置的RunTimeException
并且在oracle docs中指定:
抛出表示某个方法已被传递为非法或 不恰当的论点。
答案 3 :(得分:1)
您可以抛出任何扩展Throwable
的内容,包括错误,异常和java内置异常。
它也可以用于更复杂的逻辑:
您可以使用它来重新抛出,例如,ThreadDeathErrors
以及其他例外情况。当线程必须死亡时,它可以捕获此错误:
catch(ThreadDeathError e){
System.out.println("Thread going down");
throw e;
}
在这里,e
不是您自己的例外,而是一个被捕获的错误。请尊重错误和例外之间的差异,因为前者通常不会被捕获。
必须重新抛出线程死亡错误才能真正导致死亡。
答案 4 :(得分:0)
throw可用于抛出扩展java.lang.Throwable
的异常