throw 會保留堆疊, throw ex會清空堆疊,從而找不到在什麼地方出錯。
記錄日誌時,使用ex.tostring()得到出錯資訊, 如果有*.pdb檔案則會顯示詳細的堆疊資訊,包括行號等;
如果沒有*.pdb檔案,則會顯示出錯資訊和呼叫的相關方法,但是不會顯示出錯行號資訊。
可以用以下**測試:
class programstatic void doexception()
catch (exception ex)
", ex);
throw new exception("wrap exception", ex);}}
catch (exception eee)
", eee);
//throw;}}
static void error()
}
throw和throw ex的區別
之前,在使用異常捕獲語句try.catch.throw語句時,一直沒太留意幾種用法的區別,前幾天除錯程式時無意中了解到幾種使用方法是有區別的,網上一查,還真是,主要是區別在堆疊資訊的起始點不同。總結如下 我們都知道,c 中使用throw和throw ex丟擲異常,但二者是有區別的。在c 中推薦使用t...
throw與throws怎麼用,及其區別
throw是語句丟擲乙個異常 語法 throw 異常物件 throws是方法可能丟擲異常的宣告。用在宣告方法時,表示度該方法可能要丟擲異常 語法 修飾符 返回值型別 方法名 引數列表 throws 異常類 當某個方法可能會丟擲某種異常時用於throws 宣告可能丟擲的異常,然後交給上層呼叫它的方法程...
throw 與 throws的區別與聯絡是什麼?
區別一 throw 是語句丟擲乙個異常 throws 是方法丟擲乙個異常 throw語法 throw 異常物件 在方法宣告中,新增throws子句表示該方法將丟擲異常。throws語法 修飾符 返回值型別 方法名 引數列表 throws 異常類 其中 異常類可以宣告多個,用逗號分割。區別二 thro...