异常和返回值的使用场景。
请教一下,在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