最近在看JAVA教学的视频,觉得老师讲的很好,同时借用源代码还有笔记来撰写本系列博客,记录自己的学习内容,同时也供看到的人学习。
本篇和下一篇来介绍一下JAVA的异常机制,异常是程序执行的一种例外,Java异常是Java提供的用于处理程序中错误的一种机制。Java里错误也是用对象来包装起来。(注:Error类不需要编程者处理,也是编程者解决不了的。)
下面是异常的实例代码:
import java.io.File;这里也介绍一下一个总出现的printStackTrace()方法:
import java.io.FileNotFoundException;
public class TestException {
public static void main(String[] args) {
//int i = 1/0; 编译能够通过,但是会抛出异常是程序无法运行,ArithmeticException,当出现异常的运算条件时,抛出此异常。例如,一个整数“除以零”时,抛出此类的一个实例。
//Computer c = null;
//if(c!=null){
//c.start(); //对象是null,调用了对象方法或属性!
//}
//String str = "1234abcf";
//Integer i = new Integer(str);
//try{
//Thread.sleep(3000);
//}catch(Exception e){
//e.printStackTrace(); //打印错误堆栈轨迹
//}finally{
//System.out.println("aaa");
//}
File f = new File("c:/tt.txt");
if (!f.exists()) {
try {
throw new FileNotFoundException("File can't be found!");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
}
class Computer{
void start(){
System.out.println("计算机启动!");
}
}
public void printStackTrace():将此 throwable及其追踪输出至标准错误流。此方法将此Throwable 对象的堆栈跟踪输出至错误输出流,作为字段System.err 的值。输出的第一行包含此对象的toString()方法的结果。剩余行表示以前由方法fillInStackTrace()记录的数据。此信息的格式取决于实现,但以下示例是最常见的:
java.lang.NullPointerException
at MyClass.mash(MyClass.java:9)
atMyClass.crunch(MyClass.java:6)
atMyClass.main(MyClass.java:3)
接下来开始介绍第一种异常处理方法:try_catch_finally方法:异常处理办法之一(最简单的一种):捕捉异常(try,catch,finally)。无异常的时候跳过catch的语句内容,有异常的时候顺序执行所有语句。(但是发生异常的语句之后的try语句就不会执行了~),finally里面通常放那种不管是否发生异常都必须要执行的语句,通常在finally中关闭程序快已打开的资源,如:文件流、释放数据库连接等。 方法一不推荐用(Eclipse可以自动补···)。下面放上两段方法一的代码,不用过于细钻研,中间有不懂的类参考API文档: