java异常机制的理解
1.异常?
异常情况是指程序在运行时,可能由于外部系统的条件的改变而导致程序可能出错的情况。
?
2.异常的分类。
异常(Throwable):①错误:Error
?? ? ?②异常:<1>运行异常<2>强制检测异常
?
3.一般解决异常的两种方法
?
①try…catch机制:
?
?
②throws Exception(抛出异常):
一级一级把异常往上抛出,方法抛给主函数,主函数抛给虚拟机……
故需要一级级往上写:throws Exception
?
public static void main(String args[]) throws Exception {String path = "D:\\hu.txt";String path1 = "D:\\复件_hu.txt";FileTest ft = new FileTest();// 读取数据String str = "恭喜你!!!文件写入成功。";ft.writeFile(path1, str);}public void writeFile(String path, String content) throws Exception {// 创建一个文件输出流java.io.FileOutputStream fo = new java.io.FileOutputStream(path);// 将字符串转成字节数组byte[] ba = content.getBytes();// 遍历数组,取出字节,写到流中for (int i = 0; i < ba.length; i++) {// 写出字节fo.write(ba[i]);}// 强制输出fo.flush();// 关闭流fo.close();}??
?
4.网上的一些资料
在java代码中如果发生异常,jvm(java虚拟机)会抛出异常对象,导致程序代码中断,这个时候jvm在做的操作就是:创建异常对象,然后抛出,比如:
1.int i= 1;
2.int j = 0;
3.int res = 0;
4.res = i/j;//除0错误
5.System.out.println(res);
这5句代码运行到第四句会中断,因为jvm抛出了异常 2.throw的作用:手动抛出异常。有时候有些错误在jvm看来不是错误,比如:
1. int age = 0;
2. age = -100; 3.
System.out.println(age);
很正常的整形变量赋值,但是在我们眼中看来就不正常,谁的年龄会是负的呢?!所以我们需要自己手动引发异常,这就是throw的作用
int age = 0;
age = -100;
if(age<0)
{ Exception e = new Exception(); //创建异常对象 throw e; //抛出异常 }
System.out.println(age);