A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 清香白莲 中级黑马   /  2015-4-11 10:58  /  544 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

处理错误在Java中,异常对象都是派生于Throwable类的一个实例。
Throwable有两个子类,Error和Exception。
Error描述Java运行时系统的内部错误和资源耗尽错误。
Exception有两个分支:RuntimeException和IOException。
由程序错误导致的异常属于RuntimeException;如果程序本身没问题,由I/O错误这类问题导致的异常属于其它异常。
派生于Error或RuntimeException的异常称为未检查异常,所有其它异常称为已检查异常。
编译器核查是否为所有已检查异常提供了异常处理器。
使用throws声明方法可能拋出的已检查异常,不允许在子类的throws说明符中出现超过超类方法所列出的异常类范围。
使用throw在方法中抛出异常实例。
捕获异常try
{
statement
}
catch (ExceptionType e)
{
statement
}

try
{
statement
}
finally
{
statement
}

try
{
statement
}
catch (ExceptionType e)
{
statement
}
finally
{
statement
}
分析堆栈跟踪元素

堆栈跟踪是一个方法调用过程的列表,它包含了程序执行过程中方法调用的特定位置。
  1. import java.util.*;

  2. public class HelloJava
  3. {
  4.         public static int factorial(int n)
  5.         {
  6.                 System.out.println("factorial(" + n + "):");
  7.                 Throwable t = new Throwable();
  8.                 StackTraceElement[] frames = t.getStackTrace();
  9.                 for (StackTraceElement f : frames)
  10.                         System.out.println(f);
  11.                 int r;
  12.                 if (n <= 1)
  13.                         r = 1;
  14.                 else
  15.                         r = n * factorial(n - 1);
  16.                 System.out.println("return " + r);
  17.                 return r;
  18.         }
  19.        
  20.         public static void main(String[] args)
  21.         {
  22.                 Scanner in = new Scanner(System.in);
  23.                 System.out.print("Enter n: ");
  24.                 int n = in.nextInt();
  25.                 factorial(n);
  26.         }
  27. }
复制代码



1 个回复

倒序浏览
有了继承和多态的基础,异常学起来轻松多了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马