在java中使用异常的简单练习

时间:2011-07-19 06:38:30

标签: programming-languages java exception string

这是要解决的问题:表示气体网络的类的方法。此类管理表示每个单一气体供应线的Line类型的对象。 Line类型的对象由以下成员表示:

  • String startCity;
  • String endCity;
  • int capacityUsed;
  • int capacityAvail;
  • int maxCapacity;

我遇到问题的方法是:

boolean carry(String city1, String city2, int capacity)

考虑从city1city2的所有行。对于这些行中的每一行 尝试使用capacity方法use()(我不认为有必要知道如何使用use() use()有效)。如果CapacitaSuperataException引发异常city1搜索 如果没有其他行city2use()False之间的其他行 必须返回use()。如果对CapacitaSuperataExceptio的调用未抛出capacity n,则表示该行已分配True,并且该方法返回{{1}}。

我尝试了一些解决方案,但我不知道如何管理例外。

谢谢

2 个答案:

答案 0 :(得分:1)

尝试在循环中使用try-catch,覆盖进位方法中的所有合适的行:

for (Line line : getLines("start", "end"))
{
  try
  {
    line.use(cap);
    System.out.println("Line used, great!");
    return true;
  }
  catch (CapacitaSuperataException e)
  {
    System.out.println("Line full, try next");
  }
}
System.out.println("No line found");
return false;

答案 1 :(得分:0)

public void use(int desiredCapacity) throws CapacitaSuperataException {
    if(desiredCapacity > maxCapacity) throw CapacitaSuperataException 
    ...
}
public void example() {
    try {
    this.use(999999)
    } catch(CapacitaSuperataException) { /* show error message */ }
}