在一个循环中,数以千计的项目从String转换为int,在调用Integer.parseInt之前应该检查字符串是否为空,还是应该直接依赖NumberFormatException移动到下一个?
答案 0 :(得分:4)
如果您的数据中的空字符串例外(即它应该不),则接受的做法是不检查它们,只是让异常系统处理它。
如果可以使用空字符串(即使很少)并且意味着什么(例如""
- > "0"
),那么应该检查。
底线是你不应该使用例外来控制程序流程。
答案 1 :(得分:1)
嗯,一切都取决于:
答案 2 :(得分:1)
否强>
无论如何你必须抓住NumberFormatException
,所以添加一个额外的检查只会添加更多代码,读者必须通过这些代码才能获得功能。
(我假设你做的问题想要在任何情况下检查它是否无效,而不只是检查它是否为空。如果你只想检查它是否为空,而不是它是否通常无效,那么显然只是使用isEmpty()
并且根本不会抓到任何东西!)
是的,异常通常不应该用于控制流 - 但是捕获NumberFormatException
以检查字符串是否有效int
是一个相当容易理解的例外情况。