【发布时间】:2014-04-24 21:37:52
【问题描述】:
我在下面的代码中遇到了一些问题。在这个程序中,我输入了商品的描述、单位和价格。我为用户输入负数的可能性制作了两个自定义异常类。当我运行程序时,catch 语句确实有效,但我觉得奇怪的是,catch 块之后的语句仍然执行。如果我错了,请纠正我,但是如果有异常,程序不应该在catch语句之后执行语句吗?我的印象是,唯一的方法是使用 finally 块。任何帮助将不胜感激!
import java.util.Scanner;
public class RetailItemDemo
{
public static void main (String[] args)
{
Scanner keyboard = new Scanner(System.in);
RetailItem item = new RetailItem();
System.out.print("Item description: ");
item.setDescription(keyboard.nextLine());
try
{
System.out.print("Units on hand: ");
item.setUnitsOnHand(keyboard.nextInt());
System.out.print("Item price: ");
item.setPrice(keyboard.nextDouble());
}
catch (NegativeUnitsException nue)
{
System.out.println(nue);
}
catch (NegativePriceException npe)
{
System.out.println(npe);
}
System.out.println("\nThe item is a " + item.getDescription());
System.out.println("There are " + item.getUnitsOnHand() + " units on hand");
System.out.println("The item price is " + item.getPrice() + "\n");
}
}
【问题讨论】:
-
如果异常被“捕获”,则处理。
-
Here's Java 异常处理教程。
-
这真的很有帮助,谢谢!
-
感谢所有回答的人!
标签: java exception exception-handling try-catch-finally