在预期时,处理NumberFormatException的正确方法是什么?
2022-09-02 03:58:16
我遇到了这种情况,我需要将a解析为一个,我不知道如何处理.当我没有抓住它时,编译器不会抱怨,但我只想确保我正确地处理这种情况。String
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
- 如果我根本没有抓住异常,valiable不会被分配?然后,我将简单地将其初始化为我想要的值,当它不是数字并且不捕获异常时。
- 有没有办法以某种方式明确地标记我不关心它的异常?我想这将是类似于.如果是这样,那么我将这样做,以便Google CodePro不会将其视为“未记录”。
AWTEvent.consume()