Gre*_*reg 32 java exception-handling runtimeexception
我试图在我的代码中抛出异常,如下所示:
throw RuntimeException(msg);
Run Code Online (Sandbox Code Playgroud)
但是,当我在NetBeans中构建时,我收到此错误:
C:\....java:50: cannot find symbol
symbol : method RuntimeException(java.lang.String)
location: class ...
throw RuntimeException(msg);
1 error
Run Code Online (Sandbox Code Playgroud)
我需要导入一些东西吗?我拼错了吗?我敢肯定我一定要做一些哑巴:-(
j f*_*emm 105
throw new RuntimeException(msg);
你需要new在那里.它正在创建一个实例并抛出它,而不是调用方法.
jjn*_*guy 35
一种Exception是Object像Java中任何其他.您需要使用new关键字来创建一个新的Exception,然后才能throw吧.
throw new RuntimeException();
Run Code Online (Sandbox Code Playgroud)
您也可以选择执行以下操作:
RuntimeException e = new RuntimeException();
throw e;
Run Code Online (Sandbox Code Playgroud)
两个代码段都是等效的.
Dea*_*n J 15
正如其他人所说的那样,在抛出之前实例化对象.
只是想加一点; 抛出RuntimeException是非常罕见的.API中的代码抛出此类的子类是正常的,但通常,应用程序代码会抛出异常,或者扩展Exception而不是RuntimeException.
而在回想起来,我错过了增加的原因,为什么你使用异常,而不是RuntimeException的; @Jay,在下面的评论中,添加了有用的位.RuntimeException不是一个经过检查的异常;
你必须在扔之前实例化它
throw new RuntimeException(arg0)
Run Code Online (Sandbox Code Playgroud)
PS:有趣的是,Netbeans IDE应该已经指出了编译时错误