我遇到这种情况,我需要将a解析String
为an
int
,但我不知道该如何处理NumberFormatException
。当我没有抓住它时,编译器不会抱怨,但是我只是想确保自己能够正确处理这种情况。
private int getCurrentPieceAsInt() {
int i = 0;
try {
i = Integer.parseInt(this.getCurrentPiece());
} catch (NumberFormatException e) {
i = 0;
}
return i;
}
我只想这样简化我的代码。编译器没有问题,但是线程在上死掉了NumberFormatException
。
private int getCurrentPieceAsInt() {
int i = 0;
i = Integer.parseInt(this.getCurrentPiece());
return i;
}
Google CodePro希望我以某种方式记录该异常,并且我同意这是最佳实践。
private int getCurrentPieceAsInt() {
int i = 0;
try {
i = Integer.parseInt(this.getCurrentPiece());
} catch (NumberFormatException e) {
i = 0;
e.printStackTrace();
}
return i;
}
我希望0
当当前片段不是数字或无法解析时返回此方法。当我没有NumberFormatException
显式捕获时,是否不分配变量i
?还是有一些默认值Integer.parseInt()
返回?
一般风格表示,如果我捕获到异常,则应将其记录在某处。我不想记录它。有时会抛出此异常是正常的操作,这对我来说也不好。我找不到函数,但是会告诉我是否Integer.parseInt()
会引发异常。因此,我唯一的行动方针似乎就是调用它并捕获异常。
该javadoc的为parseInt
没有太大帮助。
以下是我想知道的具体问题:
Integer.parseInt()
抛出一个NumberFormatException
?这样我就可以毫无问题地记录日志了,因为它永远都不会发生。AWTEvent.consume()
。如果是这样,那么我将这样做,以便Google CodePro不会将其视为“未记录”。可悲的是没有。至少不在核心Java API中。但是,编写一个很容易-只需修改下面的代码即可。
如果未捕获异常,则堆栈将展开,直到它到达将对其进行处理的catch块为止,否则它将完全展开并停止线程。实际上,不会分配该变量,但这并不是您想要的。
可能有一种方法可以告诉CodePro忽略此特定警告。当然,使用诸如FindBugs和Checkstyle之类的工具,您可以在特定位置关闭警告。(编辑:@Andy指出了如何执行此操作。)
我怀疑您想要的是@daveb提到的Commons lang软件包。编写这样的函数非常容易:
int parseWithDefault(String s, int def) {
try {
return Integer.parseInt(s);
}
catch (NumberFormatException e) {
// It's OK to ignore "e" here because returning a default value is the documented behaviour on invalid input.
return def;
}
}
问题内容: 我使用10gen的本机node.js驱动器将mongodb(2.2.2)与node.js一起使用。 起初一切顺利。但是当涉及到并发基准测试部分时,会发生很多错误。频繁进行1000次并发连接/关闭可能会导致mongodb拒绝任何进一步的请求,并出现以下错误: 另外,如果许多客户端在没有显式关闭的情况下关闭,则mongodb将花费几分钟的时间来检测并关闭它们。这也将导致类似的连接问题。(使
我试试看。js与mongodb(2.2.2)一起使用本机节点。js drive by 10gen。 起初一切都很顺利。但在并发基准测试部分,出现了很多错误。频繁连接/关闭1000次并发可能会导致mongodb拒绝任何进一步的请求,错误如下: 此外,如果很多客户端在没有显式关闭的情况下关闭,mongodb需要几分钟来检测并关闭它们。这也会导致类似的连接问题。(使用/var/log/mongodb/m
有几种方法可以在中获得时间: 使用模块 但是什么是处理日期的正确方法呢?
问题内容: 我一直在使用spring-webflux进行一些研究,我想了解使用路由器功能处理错误的正确方法。 我创建了一个小项目来测试几个场景,并且我希望获得有关它的反馈,并查看其他人在做什么。 到目前为止,我在做什么。 提供以下路由功能: 我已经在我的处理程序上执行了 它们是我的错误处理程序: 这是完整的示例存储库: https://github.com/LearningByExample/re
问题内容: 在PHP系统中,我有一个常见的MVC情况:从包含的数据中接收请求。现在,我有三种方法来处理数据: a)仅调用和处理数据。 b)在变换的数据转换成变量,并将它们传递到。 c)将数据转换为的域对象,并将该对象仅传递给。 目前,我正在使用选项A,但是我认为这是错误的,因此我正在考虑使用选项C。 因此,根据MVC,处理数据的正确方法是什么? 编辑 目前,我没有使用任何MVC框架。 编辑2 通常
我有两个图像,一个是竖屏,另一个是横向模式。当移动设备视图旋转时,切换这些图像的最佳方式是什么? 目前我只显示肖像图像。当设备旋转到横向模式时,纵向图像只需拉伸即可。 我是否应该在方向旋转处理程序中进行检查,并简单地将图像重置为正确的方向图像(即根据方向手动设置)?? 谢谢