当前位置: 首页 > 面试题库 >

是否可以尝试/捕获某些东西以检查是否引发了异常?

凌意
2023-03-14
问题内容

试一试无用的东西只是看看此代码是否引发了特定的异常,这是一个好方法吗?
我想在引发异常时做点什么,否则就什么也不做。

try {  
    new BigDecimal("some string"); // This do nothing because the instance is ignored  
} catch (NumberFormatException e) {  
    return false; // OK, the string wasn't a well-formed decimal  
}  
return true;

有太多的先决条件要测试,构造函数BigDecimal()始终检查所有条件,因此这似乎是最简单的方法。


问题答案:

通常,应避免这种做法。但是,由于没有实用程序方法isValidBigDecimal(..),所以这是要走的路。

正如Peter
Tillemans在评论中指出的那样,将此代码放在称为的实用程序方法中isValidBigDecimal(..)。因此,您的代码将无法确定有效性,因此您甚至可以稍后切换到另一种方法

鲍里斯·帕夫洛维奇(BorisPavlović)建议使用第三方库(commons-
lang)进行检查。那里还有一种更有用的方法,每当我需要验证数字时都会使用该方法-NumberUtils.isNumber(..)



 类似资料:
  • 问题内容: 我应该测试某些东西是有效的还是只是为了做它并捕获异常? 有没有可靠的文档说一种方法是首选? 还有一种方法更 pythonic 吗? 例如,我应该: 要么: 一些想法… PEP 20说: 错误绝不能默默传递。 除非明确地保持沉默。 应该使用a而不是an解释为无声传递的错误吗?如果是这样,您是否通过以这种方式使用它来明确使其静音,从而使其正常运行? 我 并不是 指只能以一种方式做事的情况;

  • 问题内容: 我一直在阅读JLS,并且遇到了11.1.3节。我引用的异步异常是: 大多数异常是由于它们所发生的线程的操作而同步发生的,并且在程序中被指定为可能导致此类异常的某个点处发生。相反,异步异常是在程序执行的任何时候都可能发生的异常。 和 异步异常仅由于以下原因而发生: […] * Java虚拟机中的内部错误或资源限制,阻止其实现Java编程语言的语义。在这种情况下,引发的异步异常是Virtu

  • 问题内容: 此问题与跨域资源共享(CORS)有关。 如果在发出CORS请求时出现错误,Chrome(以及AFAIK其他浏览器)会将错误记录到错误控制台。消息示例可能如下所示: XMLHttpRequest无法加载。原产地不被访问控制允许来源允许的。 我想知道是否有办法以编程方式获取此错误消息?我尝试将调用包装在try/catch中,也尝试添加事件处理程序。两者均未收到错误消息。 问题答案: 看到:

  • 问题内容: 我想知道只有Integer.parseInt(无论如何)都不会失败的情况下才能做些什么。 更具体地说,我有一个jTextArea用户指定值,由换行符分隔。 我想检查每一行,看看是否可以转换为整数。 想出了类似的东西,但是不起作用: 任何帮助表示赞赏。 问题答案:

  • 问题内容: 如果“表”没有行。什么是最简单的检查方法? 问题答案: 您可以使用mysql_num_rows($ results) 来检查是否返回了0行,或者使用以下更快的替代方法:

  • 问题内容: 我知道我可以这样做: 然后只需编写语句中所需的代码。 还有其他方法可以检查它们是否相等? 问题答案: 怎么了 if(!Arrays.equals(array1,array2)) 与相同,即是同一数组。这不是大多数人期望的。 比较数组的内容。