2011-03-27 81 views
0

嗨! 我想抛出异常的行如何抛出异常声明?

BarcodeNo=Long.parseLong(jTextField1.getText()) 

我的方式

BarcodeNo=Long.parseLong(jTextField1.getText()) throw new NumberFormatException("Enter Numbers Only "); 

做到了这一点,但这样编译器会引发错误,指出“;”需要

所以任何人都可以告诉我该怎么做?

感谢

+0

我怀疑你想要做的事特别是在这一行抛出的异常。对 ?而且我也怀疑背后的原因对于给你一个准确的答案很重要。 – 2011-03-27 17:15:00

回答

2

已经抛出一个异常,如果该文本是不正确的格式。如果你想改变异常消息,你必须捕获异常,并抛出一个新问题:

try { 
    BarcodeNo = Long.parseLong(jTextField1.getText()); 
} catch (NumberFormatException e) { 
    throw new NumberFormatException("Enter Numbers Only"); 
} 

我不会建议你尝试使用异常消息为用户可见的消息,虽然 - 它们对于日志记录比显示最终用户更合理。

+0

上帝当我只是问细节时,你已经猜到了他心中的想法! – 2011-03-27 17:16:16

-1

是你应该把

 
try 
{ 
BarcodeNo=Long.parseLong(jTextField1.getText()); 
} 
catch(Exception e) 
{ 
throw new NumberFormatException("Enter Numbers Only "); 

} 

+1

我会尽量避免捕捉只是“例外”这样的事情。当字符串不是数字时将引发的异常记录在案。捕捉“Exception”将会掩盖诸如“jTextField1”本身为空的错误。 – 2011-03-27 17:17:19

+0

-1,我不同意鼓励在几乎所有东西中捕捉一般的'Exception',除非你正在编写容器代码或类似的东西。 – 2011-03-27 17:31:46

+0

我正在努力帮助编译代码。 – Ankur 2011-03-27 17:43:33