簡體   English   中英

忘記處理異常是邏輯/運行時錯誤還是不是錯誤

[英]Is forget handling an exception a logic/runtime error or not an error

例如,通過BufferedReader從終端讀取行而不處理錯誤

    BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
    try{            
        String input = input.readLine();
    }
    catch(Exception e){
    // Do Noting
    }

不處理 IOException 是錯誤嗎? 如果是錯誤,是邏輯錯誤還是運行時錯誤? 為什么?

從評論中的澄清來看,它是:

  1. 語言錯誤

String input屏蔽了對BufferedReader input訪問 - 但也許這只是這篇文章中的一個錯誤

  1. 幾個邏輯錯誤

錯誤是 (1) 不可能用成功的輸入做任何事情,因為變量超出了范圍,(2) 缺乏對用戶無效輸入的反饋,以及 (3) 缺乏可見的重試程序中止由於錯誤,我猜其中一個應該發生,並且可能 (4) 從描述中它可能應該只處理 IOException 時悄悄地吃掉所有異常,並且 (5) 沒有實現拒絕整數的代碼,正如所聲稱的要求說 - 數字也是字符。

  1. 運行時錯誤

readline讀取一行失敗是在運行時發生的事件,在任何給定的執行中可能發生也可能不發生。


換句話說,邏輯錯誤是未能充分預測和處理可能的運行時錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM