作者s66449 (老實樣)
看板java
標題[問題] 想問一些例外的觀念..
時間Wed Nov 9 22:55:09 2011
小弟不才...經驗不多 對例外的觀念還不是很懂
想要發問討教一下
1.throw這個關鍵字是在敘述中 自行拋出例行
什麼情況下 需要自行拋出例外呢??
而且就算不自行拋出 系統也是會自動拋出例外啊
為什麼還會有這個關鍵字想要讓我們自行拋出呢??
2.還有一個由method拋出的關鍵字是throws
主要用法是不想要在method內 直接處理例外
而是透過method拋出 去由呼叫該method的method
內的try catch解決 是這樣嗎??
3.Scanner的next()和BufferedReader的nextLine()
兩者都是讓使用者輸入文字的
為什麼前者不需要強迫處理例外 而後者需要強迫處理IO例外呢??
我有去看API的文件 的確後者的方法有拋出例外
所以才要強迫處理例外
這就是我問題的答案嗎??還是有別的呢??
麻煩幫忙指點一下..謝謝> <
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.27.184.5
1F:推 LaPass:1.你覺得有必要的時候,通常是寫個api給別人用時,避免別人 11/10 00:00
2F:推 LaPass:不照自己的意思用,導致程式出錯。 11/10 00:04
3F:推 LaPass:2.是 3.因為沒必要 11/10 00:08
4F:→ s66449:第1點不是很懂...這跟自行寫throw拋出例外有什麼關係呢?? 11/10 11:26
5F:推 aleelyle:1.不是系統自動拋出的 是你上一層用throw丟的 看原始碼 11/10 13:27
6F:推 LaPass:原po好像是在問 throw new Exception(); 的使用時機吧? 11/10 13:39
7F:→ LaPass:還是在問 void Method() throws Exception ? 11/10 13:42
8F:→ s66449:問throw new Exception()~ 11/10 14:43
9F:→ mrker:第三個問題 System.in本來就是standard的InputStream 11/10 22:45
10F:→ mrker:而且Scanner的next內已經自己catch IO例外了 理由我不知道 11/10 22:47