假设我有类似的方法
void A(long input) {
......
}
基本上,当输入很长或者可以成功地将其他类型转换为长时,它效果很好。
但是,当某些数据输入错误时,会抛出NumberFormatException
。所以一个稳健的方法应该是
void A(long input){
try{
...
}catch(NumberFormatException e){
}
}
但是,一些开发人员认为该项目是一个 BS 应用程序。所以输入是从 Web ui 传递的。所以它可以确认输入是有效的。并且不需要处理这个异常。
但我认为这是必须的。你怎么认为?谢谢。
最佳答案
如果该方法接受 long
,则该方法本身内部不会进行转换 - 在调用该方法之前,参数将在压入堆栈时进行转换,并且您不会能够捕获方法本身内的转换错误。
如果您想传递一个带有参数的String
,那么您将进行自己的转换——并且需要捕获异常或让它被抛出。任何一种方式都同样有效,并且选择取决于您想要如何处理无效值。如果您只是要抛出一个异常,表示“这实际上不是一个数字”或其他内容,那么您也可以直接抛出该异常。
关于java - 我应该在方法中捕获这个 NumberFormatException 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4301615/