翁凯java摘要第十一讲

Exception
1>The basic philosophy of Java is that "baddy-formed code will not be run".
总有一些问题是编译时刻预计不到的.
能否很好的处理运行时刻的异常情况是一个程序健康的标志.
中国程序员普遍缺乏异常处理意识.
用户都知道软件没有不出错的,所以要把运行错误报告给用户,而不是试图隐藏.
readFile
{
open the file;
determine its size;
allocate that much memory;
read the file into memory;
close the file;
}
中国人不够细致,考虑主要东西,容易忽视细节问题.
软件一定会出错,消费软件.
2>传统错误处理
c函数中不少都以特殊的返回值标志运行错误.
但是如果你完全检查任何时刻的错误,你的代码就会变成无法阅读的梦魇.
readFile.err
所有的函数都作出返回值处理.
3>Exception机制处理
使用异常机制,读、写和调试代码变得清晰。它把处理错误的代码和正常的代码分开。
readFile.exception
readFile{
try{
//basic logic
open the file;
determine its size;
allocate that much memory;
read the file into memory;
close the file;
}catch(fileOpenFailed){
doSomething;
}catch(sizeDeterminationFailed){
doSomething;
}catch(momoryAllocationFailed){
doSomething;
}catch(readFailed){
doSomething;
}catch(fileCloseFailed){
doSomething;
}
}
4>Throw an exception
throw new NullPointerException();
throw new NullPointerException(
"HERE!");//message
异常发生时,你不能解决问题,所以必须仍(throw)出一个异常。
n1:一个异常对象建立起来了。
n2:当前运行的路径别停止,异常对象被弹出(eject).
n3:异常处理机制接管,开始寻找一个适合的地方来继续执行。
5>Catch an exception
Java的异常机制的好处就在与它使2没在一个地方将精力集中在要解决的问题上,而在另一个地方处理来自那部分代码的异常情况。
try{
// Code that may make exception
}catch(Typel id1){
}chach(Type2 id2){
}
6>Match the exception
匹配异常不需要精确匹配。
//:Human.java
//Catching Exception Hierarchies
class Annoyance extends Exception{}
class Sneeze extends Annoyance{}
public class Human{
public static void main(String args[])
{
try{
throw new Sneeze();
}catch(Annoyance a){
System.out.println(
"Caught Annoyance");
}catch(Sneeze s){
Skystem.out.println(
"Caught Sneeze");
}

}
}
lunzi   2005-10-17 22:40:28 评论:0   阅读:2409   引用:0

发表评论>>

署名发表(评论可管理,不必输入下面的姓名)

姓名:

主题:

内容: 最少15个,最长1000个字符

验证码: (如不清楚,请刷新)

Copyright@2004-2010 powered by YuLog