iOS斷言 拋異常

2021-07-09 05:00:18 字數 887 閱讀 9529

自定義描述異常資訊的desc就是所謂的拋異常

注意:assert是乙個巨集,只在debug版本中起作用,在release版本中,該語句是不起任何作用的。

示例一:給label屬性賦值不能為空,新增斷言,如果為空,則直接crash,拋異常

#import "mainviewcontroller.h"

@inte***ce mainviewcontroller ()

@property(nonatomic,weak)uilabel *lb_title;

@end

@implementation mainviewcontroller

- (void)viewdidload

- (void)setlb_title:(uilabel *)lb_title

- (void)touchesbegan:(nsset*)touches withevent:(uievent *)event

利用巨集自定義斷言

#define  dxassertnil(a,b,...)   nsassert((a)==nil,(b))

#define  dxassertnotnil(a,b,...)    nsassert((a)!=nil,(b))

#define  dxasserttrue(a,b,...)    nsassert((a),(b))

#define  dxassertequals(a,b,c,...)   nsassert((a==b),(c))

#define  dxassertnotequals(a,b,c,...)    nsassert((a!=b),(c))

異常 raise assert(斷言)

try except 語法 try 語句 執行別的 except 異常型別 語句 如果在try部份引發了 name 異常 except 異常型別 as 資料 語句 如果引發了 name 異常,獲得附加的資料 else 語句 如果沒有異常發生當程式出現錯誤,python會自動引發異常,也可以通過rai...

28 3 異常 斷言

異常處理 什麼是異常 異常和錯誤的區別 異常發生了是什麼效果 如何檢視報錯資訊 最簡單的異常異常處理 pass 多分支異常處理 l d z t for i in enumerate l 1 print i 0 i 1 try num int input num print l num 1 excep...

建構函式中拋異常

1 建構函式中是否可以拋異常?可以。2 有什麼限制嗎?有限制。構造拋異常之前必須把已經申請的資源釋放掉。這樣,就算你的物件是new出來的,也不會造成記憶體洩漏。因為析構函式不會被呼叫,所以丟擲異常後,你沒機會釋放資源。建議,在建構函式中不要做過多的事情,只是能對成員變數的做初始化工作就好了。真的需要...