1. 程式人生 > >java中try catch與if else區別

java中try catch與if else區別

  有人說了try ...catch...不就是丟擲異常以文字形式顯示出來麼?if...else...也可以阿.else裡面寫showmessage不就可以麼???
    首先try提捕獲異常的,即異常並不是我們能預先知道的,所以不能用if什麼條件來判斷的。異常是需要在程式的執行中進行捕獲的。
    舉個例子來看看吧:
  int a=200,b=0;
    int c;
    try
    {
      c=a/b;
    }
    catch(...)
   {
      ShowMessage("Can not devided by zero!");
   }
可是如果上面的例子用if…else…,就不能夠顯示else後面的結果了。


的確, if可以進行簡單的過濾, 但是, 由於機器或者說環境各異, 可能會產生一些無法預知的異常, 這是在開發階段無法預知的, 所以就要用try...catch來捕捉, 而if是無法做到的.
   從程式結構上來說:

if…else…屬於程式結構中的分支結構;
try…catch…應該屬於程式結構中的順序結構,雖然說在出現異常的時候編譯器會跳到捕獲異常的入口處,但這和傳統意義上的if…else…結構存在根本性的差別.

當不可預知有什麼異常的時候,用try
    當過多情況需要處理,用if就會太繁瑣
    當你需要觀察的程式碼沒有返回值的時候
,if()當中沒法作判斷,必須用try
大致就是這3種情況


    還有就是:意義不一樣,異常是在執行時不定出現的。