try異常處理與Scanner迴圈問題

2021-07-05 07:15:47 字數 553 閱讀 6851

今天遇到個問題,就是我把乙個變數定義成int型,用scanner在控制台輸入資料時如果不小心輸入的資料是string型(例如本例輸入a),則程式就會報錯,如圖:

所以我們要將**放到try catch塊中捕獲一下,修改後**如圖:

可以看到我們已經將**用try catch包圍,可是這時候又遇到了乙個問題,就是當我們輸入了乙個字母a後,程式會無限的迴圈下去,不斷的走的是catch裡面輸出的語句,這是為什麼呢?其實原因很簡單因為建立scanner物件這句話在迴圈外面,所以當第二次迴圈時它不會讓你再輸入乙個數而還是用的你第一次輸進去的數,把建立scanner物件語句(上圖中的1.語句)移到while迴圈裡面就ok了。結果如圖:

Swift異常處理的try?與try!

首先要明白丟擲異常後異常的運動 異常被丟擲後,中斷整個處理,異常不斷向外層 範圍 傳遞,直到遇到catch 塊群,會與catch 塊的條件進行匹配,匹配符合則進入此 塊處理。如果遇到沒有條件的catch 那麼直接在這個 裡處理。如果丟擲的異常一直到最外層仍沒有被catch 處理,那麼程式會卡住 後面...

異常處理 try與except處理異常語句

def convert numbers s try return int s except valueerror return nonetry except介紹 與其他語言相同,在python中,try except語句主要是用於處理程式正常執行過程中出現的一些異常情況,如語法錯 python作為指...

try與except處理異常語句

與其他語言相同,在python中,try except語句主要是用於處理程式正常執行過程中出現的一些異常情況,如語法錯 python作為指令碼語言沒有編譯的環節,在執行過程中對語法進行檢測,出錯後發出異常訊息 資料除零錯誤 從未定義的變數上取值等 而try finally語句則主要用於在無論是否發生...