if(){}else和try{}catch{}語句的本質區別
今天突然糾結一個問題,if…else語句是不是處理異常,糾結好長時間,向人求助才搞懂。問題來源:用if語句處理了一個小bug,然後被問到這是不是就是異常,一下懵了,直覺上不是,但又說不清楚。
要弄懂這個問題首先要了解他們的語法:
if(條件){
程式碼塊
}else{
程式碼塊
}
try{
程式碼塊
}catch{
程式碼塊
}
看了上邊的程式碼發現,if語句判斷的是條件是否成立,成立執行一個分支,否則執行另一個分支。而try語句判斷的是一段程式碼塊是否執行成功,不成功執行catch裡邊的程式碼塊。他們的作用本來就完全不同。 希望此文能幫到有同樣疑惑的人(如果有的話)。
相關推薦
if(){}else和try{}catch{}語句的本質區別
今天突然糾結一個問題,if…else語句是不是處理異常,糾結好長時間,向人求助才搞懂。問題來源:用if語句處理了一個小bug,然後被問到這是不是就是異常,一下懵了,直覺上不是,但又說不清楚。 要弄懂這個
用陣列代替if-else和switch-case語句
表驅動法(Table-Driven Approach),通過在表中查詢資訊,來代替很多複雜的if-else或者switch-case邏輯判斷。這是一種設計的技巧,可以應用很多的場合,不僅可以提高程式的效能,也能大大減少程式碼量,使得程式碼變得高效和優雅。下面將
if語句,if...else if語句和switch...case語句的區別和分析
當我們有一個判斷條件的時候,顯然用if語句比較方便有效。但當判斷條件很多的時候,我們可以使用if語句或者if....eles 語句和switch case 語句。 if...else if語句和多個if語句的區別還是很大的,if...else if在任何一個環節滿足條件的時候就將會終
if...else if...else和switch語句的註意點,以及和js的if...else if...else的不同
沒有 char 而且 字符串常量 if 語句 ava 測試 執行 情況 java if...else if...else 語句 if 語句後面可以跟 elseif…else 語句,這種語句可以檢測到多種可能的情況。 使用 if,else if,else 語句的時候,需要註意
Java程式結構、if-else和switch條件選擇、for與while與do-while迴圈及beak和continue控制跳轉語句
Java程式的流程控制 Java流程控制提供了控制程式的基本手段,使得程式能夠按照正確的順序逐步執行,以實現特定的功能。Java流程控制結構分為:順序結構、選擇結構、迴圈結構。 順序結構 Java應用程式都是從main()方法開始執行的。程式一般是按照書寫順序依次向下執行,直
API、 異常(exception和error)、 try-catch語句、throw和throws、 finally關鍵字
*API: 應用程式程式設計介面,即jdk文件手冊,裡面以類的形式提供了 很多常用的功能。 --常用的包與類: java.lang包: 因為常用,所以不需要導包."字串,執行緒" java.util包: 陣列工具類,日期
throws 和 try-catch的區別
在 java 中,捕獲處理一般有2種方式,throws 和 try-catch。 區別在於: 1. 要麼宣告異常,也就是在方法名後面加上throws exception_name,…, 方法本身只
try...catch語句中return和finally到底誰先執行
寫在開頭 這個問題真的困擾了我很久,感覺簡直像一個哲學(?)問題。 私下和朋友們對這個問題討論了很久,又在網上查找了很多相關資料,終於還是把這個問題理清楚了。(自認為 ) 我的結論是:在try…catch語句中,當程式執行完return後的表示式後,會轉而執行finally語句塊
delphi異常捕獲try except語句 和 try finally語句用法
perror 方式 檢測 變量 debug 創建用戶 進行 範圍 需要 原文地址:delphi try except語句 和 try finally語句用法以及區別 一直寫程序都沒管他們,也盡量很少用,今天終於想把他給弄個明白,在網上找來,記下!主要是前面小部分,後
ES6模塊和CommonJS、AMD本質區別思考
命名 運行時加載 這也 全局 編譯 soft span 對象 -s CommonJS和AMD本質上是用一個全局變量定義了一個命名空間 以sea.js為例,各個模塊輸出一個對象,然後這個對象掛載在seajs.cache屬性下,各個模塊作為一個對象存在。 而ES6模塊則不是,模
if else和switch的效率
沒有 gcc com cas 間距 分支 lob if...else def switch和if-else相比,由於使用了Binary Tree算法,絕大部分情況下switch會快一點,除非是if-else的第一個條件就為true. 說實話 我也沒有深入研究過這個問題的根
e1087. try/catch語句
put acc input cep sage method access ioe pre The try/catch statement encloses some code and is used to handle errors and exceptions that
java中try catch語句執行順序簡介
package com.string_lc; /** * @filename Test.java * @author l * @description */ public class Test { public static void main(String[] args) {
verilog中if-else和case的比較
比較if-else_if-else和case: 1、if(a==2'b00) 語句1; else if(a==
Response.End方法 在try...catch語句中執行Response.End()後如何停止執行catch語句中的內容
文章:在try...catch語句中執行Response.End()後如何停止執行catch語句中的內容 呼叫Response.End()方法能保證,只輸出End方法之前的內容。 呼叫Context.ApplicationInstance.CompleteRequest();方法,會輸出方
[SQL server] IF ELSE 和 CASE WHEN 的用法
/*判斷一個數如果大於10,按10統計,如果小於0,按0統計*/ --方法a DECLARE @AA INT SET @AA=15 IF @AA>10 SELECT 10 ELSE IF @AA<0 SELECT 0 ELSE SELECT @AA --方法b DECLA
try-catch語句的用法
在C#程式執行中,不可避免的會出現很多異常事件,這些異常事件會阻止程式繼續執行,給使用者體驗增加困難。所以我們要儘量避免異常的同時,也要對異常進行處理。這時就需要使用到try-catch語句。 下面介紹try-catch語句的用法。 (請注意,這是一篇程式設計方面的經驗,不是windows作
python for...else... 和 try...except...else...finally
python在for迴圈語句中加入else語句,在這裡else的作用和if...else...語句不一樣,這裡的作用是迴圈語句結束後執行else語句裡的內容。 for i in range(5): print(i) else: print('end') 0 1 2 3 4 end
ST語言和C語言關於case of 和switch case語句的區別
C語言中,case後不可直接跟多個常量,要如下圖所示使用(不要忘記defalut) switch(int,char){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: //todo break; defalut: br
java的if else 和三目運算的效率問題
1.從型別轉換上看,因為三目運算子在做判斷的時候需要考慮到型別轉換的問題,而if else 不需要考慮型別轉換。 所以 if else 效率高一點。 2.從總體上看 A:需要考慮到迴圈自身所佔用的時間。 B:需要考慮到賦值以及迴圈內的其他運算子所佔用的時間。 所以