应用技巧:Java中的异常处理

来源:java认证发布时间:2012-11-12 12:48:45java认证视频


  我们来看看另一个例子。在这个例子中,我们会要建立自己的异常实例类,该类扩展了其母Exception类。应用程序会模拟用于异常处理和抛出的堆栈机制,如堆栈是满的或者是空的。检查一下。
  Public class StackException extends Exception {
  Public StackException (String text) {
  Super (text)
  }
  }
  现在让我们创建一个Stack类。注意push和pop方法。它们正抛出StackException,而这一动作由方法签名导入。此外,还有一个if条件,且条件满足时,异常事件会被抛出。否则,一切都会顺利运行。
  public class Stack {
  private final int SIZE = 100;
  private Object st[];
  private int size;
  private int sp;
  public Stack (int size) {
  if (size < MAXSIZE)
  this.size = size;
  else
  this.size = MAXSIZE;
  this.st = new Object [size];
  this.sp = -1;
  }
  public void push (Object o) throws StackException {
  if (sp == this.size - 1)
  throw new StackException ("Stack is full");
  this.st [++this.sp] = o;
  }
  public Object pop () throws StackException {
  if (sp == -1)
  throw new StackException ("Stack is empty");
  Object o = this.st [this.sp];
  this.sp--;
  return o;
  }
  public boolean isEmpty() {
  return this.sp == -1;
  }
  }
  好的,现在是时候写一写Main class连同主要方法了。在这一部分,请对try-catch语句给予更多关注。有两类异常情况可以被捕捉到。你也可以很容易地找出它们。
  public class Main {
  public static void main (String args[]) {
  Stack s = new Stack (10);
  for (int i = 0; i <= 10; ++i)
  try {
  s.push (new Integer(i));
  }
  catch (StackException e) {
  System.out.println (e);
  }
  while (! s.isEmpty() ) {
  try {
  System.out.println( (Integer)(s.pop()) );
  }
  catch (StackException e) {
  System.out.println(e);
  }
  }
  }
  }
  当然,这里也会有附带输出。如你所见,第一行显示出的就是异常事件,因为我们要用11个要素填补堆栈,因此,在循环到isEmpty是错误的时,异常事件不会抛出。
  Stack is full
  练习几次以上的几段代码。如果异常事件被抛出但是却能够正确被处理那就不要感到惊讶。这就是异常处理的神奇之处。
  总结
  在这篇文章里我们就异常处理的实用性和重要性进行了分析。我们都知道,不管是检查过的或是未经检查的,程序员都要处理好异常事件,否则可能出现程序的异常终止。我们强调要将理论与实践相结合。坦率地说,本文虽只是冰山一角,但一些基本的知识已经介绍给了大家。希望能在异常处理方面对大家有所帮助。
  更多优质资料尽在考试大论坛 考试大在线题库 java认证更多详细资料

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答