当前位置:编程学习 > JAVA >>

异常和返回值的使用场景。

请教一下,在java.io.Inputstream中,read()校验是抛出RuntimeException,而skip()的校验是return 0呢?
public int read(byte b[], int off, int len) throws IOException {
if (b == null) {
throw new NullPointerException();
} else if (off < 0 || len < 0 || len > b.length - off) {
throw new IndexOutOfBoundsException();
} else if (len == 0) {
return 0;
}

public long skip(long n) throws IOException {

long remaining = n;
int nr;

if (n <= 0) {
return 0;
} --------------------编程问答-------------------- 你意思是什么? --------------------编程问答-------------------- 你是说怎么用异常,怎么用返回值是不是?
说个例子你就明白了:
1 你叫同事吃饭时去带一包烟过来.
2 同事说: 嗯. 低头玩手机就出去了....
3 同事吃完饭, 发现吃饭把钱用光了, 带不了烟了!! 怎么办 出异常了嘛......
4 有两个选择: a) 你同事回来说没听到你的话(返回null), b) 你同事电话过来...没钱了(程序产生异常)

上面如果用程序来做,应当返回一包烟才是, 你喜欢a还是b?

选择a或b就是选择 返回值,还是选择产生异常.
--------------------编程问答-------------------- java做程序,如果你是项目经理,你就应当做一个异常隔离层, 除了查数据库异常外(内部处理,打印日志就行)
其它所有过程,随意怎么产生异常, 最后你在这一层档住......一夫当关万夫不开....

异常的做用就是: 处理程序无法再正常进行的问题,提供专门的处理办法(打日志,转成友好信息给客户)
返回值: 如果能返回值,一切都在你撑控中,程序也就是正常运行. 
要产生异常但没有产生: 叫他买烟,一声不响的就回来了,也不说明原因...把苦水吃到肚子里了.
                      也没有正常处理好你要他做的事, 你说这样行不?
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,