作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 java gui 应用程序,应该处理异常。这是我的程序的总体思路:它应该接受整数类型的输入。输入对话框应引起异常,应捕获该异常并打印消息“错误号码”。但是,我的问题是,如果用户输入空字符串和/或格式错误的数字,我如何才能重复 JPanelInput。另外,如果用户选择取消选项,则退出 JOptionPane。
String strIndex = this.showInputDialog(message, "Remove at index");
int index;
// while strIndex is empty && str is not type integer
while (strIndex.isEmpty()) {
strIndex = this.showInputDialog(message, "Remove at index");
try {
if (strIndex.isEmpty()) {
}
} catch (NullPointerException np) {
this.showErrorMessage("Empty field.");
}
try {
index = Integer.parseInt(strIndex);
} catch (NumberFormatException ne) {
this.showErrorMessage("You need to enter a number.");
}
}
void showErrorMessage(String errorMessage) {
JOptionPane.showMessageDialog(null, errorMessage, "Error Message", JOptionPane.ERROR_MESSAGE);
}
String showInputDialog(String message, String title) {
return JOptionPane.showInputDialog(null, message, title, JOptionPane.QUESTION_MESSAGE);
}
更新:
String strIndex;
int index;
boolean isOpen = true;
while (isOpen) {
strIndex = view.displayInputDialog(message, "Remove at index");
if (strIndex != null) {
try {
index = Integer.parseInt(strIndex);
isOpen = false;
} catch (NumberFormatException ne) {
view.displayErrorMessage("You need to enter a number.");
}
} else {
isOpen = false;
}
}
最佳答案
如果用户选择取消,
showInputDialog()
将返回 null。这是基本算法。我会让你把它翻译成 Java:
boolean continue = true
while (continue) {
show input dialog and store result in inputString variable
if (inputString != null) { // user didn't choose to cancel
try {
int input = parse inputString as int;
continue = false; // something valid has been entered, so we stop asking
do something with the input
}
catch (invalid number exception) {
show error
}
}
else { // user chose to cancel
continue = false; // stop asking
}
}
关于java - 重复 JPaneInput 的多次 Try/Catch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18402600/
这个问题已经有答案了: How do you implement a re-try-catch? (29 个回答) 已关闭 9 年前。 我有一个 java gui 应用程序,应该处理异常。这是我的程序
我是一名优秀的程序员,十分优秀!