黑马程序员技术交流社区
标题:
Java自学笔记06—异常
[打印本页]
作者:
清香白莲
时间:
2015-4-11 10:58
标题:
Java自学笔记06—异常
处理错误
在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
}
分析堆栈跟踪元素
堆栈跟踪是一个方法调用过程的列表,它包含了程序执行过程中方法调用的特定位置。
import java.util.*;
public class HelloJava
{
public static int factorial(int n)
{
System.out.println("factorial(" + n + "):");
Throwable t = new Throwable();
StackTraceElement[] frames = t.getStackTrace();
for (StackTraceElement f : frames)
System.out.println(f);
int r;
if (n <= 1)
r = 1;
else
r = n * factorial(n - 1);
System.out.println("return " + r);
return r;
}
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Enter n: ");
int n = in.nextInt();
factorial(n);
}
}
复制代码
作者:
清香白莲
时间:
2015-4-11 11:00
有了继承和多态的基础,异常学起来轻松多了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2