java - 我应该在方法中捕获这个 NumberFormatException 吗?

标签 java exception

假设我有类似的方法

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/

相关文章:

c++ - boost 正则表达式错误:未初始化的 boost::match_results

java - 给出(一个) 'catch(Exception)' 子句发生的坏事的例子

java - 将 Maven 项目部署到 AEM?

java - faces-config 导致启动 Web 应用程序时出现异常

android - 解决意外顶级异常的最佳方法是什么?

asp.net - 扩展从 JQuery 调用 Web 服务时从 ASP.NET 抛出的异常

java - 包含 springboot 和 thymeleaf 的列表

java - mysql insert with java and php : no error but no insert

java - Mac OS X : Apache Maven completely unusable

haskell - 安静退出(无一异常(exception))haskell