java中try catch與if else區別
阿新 • • 發佈:2019-02-20
有人說了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種情況
還有就是:意義不一樣,異常是在執行時不定出現的。
首先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種情況
還有就是:意義不一樣,異常是在執行時不定出現的。