精通JBuilder:异常时的流程控制Java认证考试

文章作者 100test 发表时间 2009:04:10 01:56:02
来源 100Test.Com百考试题网


  发生异常时的流程控制

  代码段发生异常的情况是比较复杂的,有些代码段只会发生一种异常,而有些代码会发生多种异常,有些工作不管代码段有没有发生异常都必须进行处理。下面我们来看一下Java语言如何对这些不同情况进行处理。

  (1)使用try…catch

  程序运行产生异常时,将从异常发生点中断程序并向外抛出异常信息。程序通过try…catch可以捕获发生的异常,并做出相应的处理,下面我们来看一段异常处理的代码,如代码清单2-55所示。

  代码清单2-55 异常处理

  1.int x = (int)(Math.random()*5).

  2.int y = (int)(Math.random()*10).

  3.int[] z = new int[5].

  4.try

  5.{

  6. System.out.println("y/x =" (y/x)).

  7. System.out.println("y =" y " z[y]=" z[y]).

  8.}

  9.catch (ArithmeticException ex1)

  10.{

  11. System.out.println("算术运算异常:" ex1.getMessage()).

  12.}

  13.catch (ArrayIndexOutOfBoundsException ex2)

  14.{

  15. System.out.println("数据越界异常:" ex2.getMessage()).

  16.}

  这个例子中第6行可能会发生被0除的异常,而第7行会发生数组越界的异常。当x为0时,程序将抛出ArithmeticException异常,当y值大于 4时,程序将抛出ArrayIndexOut- OfBoundsException异常。在try{}代码块中发生的异常时被catch中相应的异常处理块捕获,并获得相应的异常处理。

  值得说明的是ArithmeticException和ArrayIndexOutOfBoundsException都是属于“运行期异常”,如果不用 try…catch…对它们进行处理,程序也是可以通过编译的,如果这两个异常属性“检查性异常”则一定要用try…catch…对它们进行处理。

  try 块中发生异常后,在发生异常代码行后的其他代码将被跳过,不予处理,流程直接到达相匹配的catch异常处理块。所以当x=0时,第6行代码发生 ArithmeticException异常,第7行的代码将被跳过,程序进入第9~12行的异常处理块,然后直接到达第16行的后面。


相关文章


SWT制作下拉式ToolBar菜单代码Java认证考试
JavaJDK:小心使用boxingJava认证考试
精通JBuilder:异常时的流程控制Java认证考试
精通JBuilder:维护工程扩展类库Java认证考试
精通JBuilder:维护JBuilder类库Java认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛