【java】關於異常處理的思考
所謂異常,是程式執行期間發生的各種意外或錯誤。比如使用者輸入出錯、所需檔案找不到、執行時磁碟空間不夠、記憶體不夠、算術運算錯(數的溢位、被零除等)、陣列下標越界等。所以異常處理機制十分有用。但為了防止程式碼過於冗長,執行時間過長等,並不是要在每一句話上都加上try catch語句。
最普遍的在於對使用者輸入的限制,對於計算器這一類,要求使用者輸入的數大小不超過其計算範圍(如int的取值範圍為 -2147483648~2147483647 ,佔用4個位元組),且對於計算結果超出範圍發正常顯示的錯誤也要考慮。還有數學上的被零除問題,然後要結合實際如果限定為實數集,那麼被開方數應該大於等於零等等。
而登入註冊介面則要求使用者名稱使用規定的字元,並且長度在限定範圍內,並且要考慮輸入為空的情況。呼叫資料庫的資料傳入出現問題也要有相應的報錯,畢竟資料庫的資料型別與程式並不相同。
記憶體不夠,目前的成都很難涉及到,但卻很致命。可以用一個沒有終止條件的遞迴來嘗試,但是軟體會自動停止繼續執行他認為沒有結果或短時間沒有結果的程式。
在程式執行過程中還會出現陣列下標越界的情況,但如果是自動對於i的只進行自增等運算,那麼對於a[i]的訪問不必加上異常處理,但如果是由使用者的輸入,間接或直接來決定對於a[i]的訪問,那麼就需要加上異常處理機制。直接輸入i還可以由對於輸入的限制來防止陣列下標越界,但如果是通過使用者輸入進行復雜的計算來決定i的值,那麼就只能在訪問a[i]的時候加上異常處理。
在eclipse上我觀察到如果要定義檔案類相關的物件,那麼如果不套上try catch 編譯器會報錯,檔案這裡實在是太耗腦細胞了。檔案訪問可能會出現檔案不存在的情況,如何開啟一個不存在的檔案呢?我選擇報錯!即使你成功訪問了檔案,傳到你變數裡的值可能也會出錯,畢竟檔案裡的內容可能和你想象中的並不一樣,電腦對於檔案的判斷也可能和你想象的不一樣。那麼在之後呼叫變數進行運算的時候,程式崩掉是在所難免的。有時會用陣列進行接收,那更是很容易崩了。在這種高危地帶,加上異常處理是必須的。
總之,就是各種東西傳來傳去最容易出錯、可能會很傻的使用者輸入容易出錯、你沒考慮到的各種溢位超出容易出錯。
1500字是不存在的。