亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

恐慌和斷言有什么區別?

恐慌和斷言有什么區別?

Go
DIEA 2021-04-02 10:11:59
Go不提供斷言。它們無疑是很方便的,但是我們的經驗是程序員將它們用作拐杖,以避免考慮適當的錯誤處理和報告。然而,它具有打印和println哪些呢緊急打印,在打印后中止執行緊急打印,在打印后中止執行那和斷言不是一回事嗎?他們為什么會聲稱以上內容卻感到恐慌?我可以看到它導致了同樣的問題,但是在它的末尾添加了一個錯誤消息,很容易被濫用。我想念什么嗎?
查看完整描述

3 回答

?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

不,這不對??只啪拖瘛跋葘懭缓笾兄埂?,而斷言就像“測試,如果它為假,則先寫然后中止”。無論如何,他們無法阻止您做出類似斷言的聲明。


查看完整回答
反對 回復 2021-04-26
?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

除了顯而易見的是,它panic并不會檢查任何東西assert,在Go中,即使發生恐慌,您也可以使用機制進行錯誤處理。

如果程序包認為發生了某些事情,則無法從它中驚慌失措。

但是,包用戶,調用方(父級)可能要檢查或記錄緊急情況,然后繼續進行緊急情況,或者捕獲它以正確處理案件(例如,重試或使用其他程序包/功能)。

同樣,斷言中止不會調用析構函數或任何東西。盡管Go中的恐慌仍然會調用您defer將要執行的函數,所以一切都已清理干凈。

因此,正如您所看到的,與斷言相反,緊急情況將允許執行各種清理任務。那就是你給的報價所指向的。


查看完整回答
反對 回復 2021-04-26
?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

例如,在C語言中,assert()只有在調試模式下才會中止執行。


查看完整回答
反對 回復 2021-04-26
  • 3 回答
  • 0 關注
  • 268 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號