我正在为我的CS类做一个项目并完成所有工作,除非用户在我要求高度时输入任何不是整数的东西,它会给出错误。 我不确定如何捕捉异常。 这是我的源代码片段。 我是初学者,我非常感谢你的帮助。
Alter table Course_section
Alter column CSectionID Number(2,2) PRIMARY KEY;
答案 0 :(得分:2)
您正在将输入解析为整数,可能会发生异常。在try块中解析输入,在catch中你可以显示消息来输入一个数字。
答案 1 :(得分:0)
您需要实施异常处理。
try {
height = Integer.parseInt(JOptionPane.showInputDialog("What is your height? (48-84 inches or 114-213 centimeters) \nEnter whole numbers only."));
} catch (Exception e)
{
// this part gets executed when a non-int is given as input
//Print error message, etc
}
如果你想要,你也可以围绕这段代码构建一个while循环,只有在没有抛出异常的情况下才会中断它。
答案 2 :(得分:0)
您需要的是其中的func textField(textField: UITextField,
shouldChangeCharactersInRange range: NSRange,
replacementString string: String) -> Bool{
if let count = textField.text?.characters.count {
if count < 5 {
print("\(count)")
return true
}
else {
return false
}
}
return true
}
和loop
块:
try..catch
答案 3 :(得分:0)
你已经有一个try / catch块,但它处于错误的水平。你需要将它包装在最初尝试解析整数的过程中,如下所示:
JOptionPane.showMessageDialog (null, "This program calculates tidal volume.", "Tidal Volume Calculator", JOptionPane.INFORMATION_MESSAGE);
name = JOptionPane.showInputDialog("What is your name?");
while (flag3 == true)
{
sex = JOptionPane.showInputDialog("What is your sex?");
if(sex.equalsIgnoreCase("male") || sex.equalsIgnoreCase("m"))
{
while (flag2 == true)
{
try {
height = Integer.parseInt(JOptionPane.showInputDialog("What is your height? (48-84 inches or 114-213 centimeters) \nEnter whole numbers only."));
if(height <= 84 && height >= 48)
{
malePbwInch = 50 + 2.3 * (height - 60);
JOptionPane.showMessageDialog(null, name + "'s predicted body weight is: " + malePbwInch);
flag2 = false;
flag3 = false;
}
if(height <= 213 && height >= 114)
{
malePbwCm = 50 + .91 * (height - 152.4);
JOptionPane.showMessageDialog(null, name + "'s predicted body weight is: " + malePbwCm);
flag2 = false;
flag3 = false;
}
if(height > 84 && height < 114 || height < 48 || height > 213)
{
JOptionPane.showMessageDialog(null, "Invalid height. Please try again.");
}
}
catch(NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Invalid height. Please try again.");
}
}
}
}
(请注意,以上内容未经测试,只需更改代码即可将try块移动到正确的位置。)