Java异常帮助

时间:2011-06-15 08:58:19

标签: java exception

有人可以向我解释以下代码中的throws Exception部分吗?

public static void main(String args[]) throws Exception {

   //do something exciting...

}

提前谢谢。

2 个答案:

答案 0 :(得分:3)

这意味着函数main(String[])可以抛出Exception的任何子类型。在Java中,方法抛出的所有异常(RunTimeException除外)必须显式声明
这意味着每个使用 main(String[])方法都必须小心(trycatchException,或将自己声明为{ {1}}也是。

答案 1 :(得分:1)

异常是Java在意外发生时使用的一种方式。例如,如果要从文件读取/写入文件,则必须处理在文件出现问题时将引发的IOException

向您解释的一个小例子:

让我们采用一个名为method1()的方法抛出异常:

public void method1() throws MyException {
  if (/* whatever you want */)
    throw new MyException();
}

它可以以两种方式使用。 method2()的第一种方式就是进一步抛出热土豆:

public void method2() throws MyException {
  method1();
}

使用method3()的第二种方式将处理该异常。

public void method3() {
  try {
    method1();
  }
  catch (MyException exception) {
  {
    /* Whatever you want. */
  }
}

有关例外的更多信息,http://download.oracle.com/javase/tutorial/essential/exceptions/应该有所帮助。


修改

假设我们想要返回此数组中值的含义(这是输入数字的平方):int[] squares = {0, 1, 4, 9, 16, 25};0如果数字(input)是太大了。

行人编程:

if (input > squares.length)
  return 0;
else
  return squares[input];

异常大师编程:

try {
  return squares[input];
}
catch (ArrayIndexOutOfBoundException e) {
  return 0;
}

第二个例子更干净,因为你可以在那之后添加另一个块(以及另一个块),以便修复每个可能的问题。例如,您可以在最后添加:

catch (Exception e) { // Any other exception.
  System.err.println("Unknown error");
}