NSException和NSError的使用場景不同。
NSException
如果需要指出程序員的編碼錯(cuò)誤,則應(yīng)該使用NSException。例如:一個(gè)方法只能接受奇數(shù)作為參數(shù),但是程序員在調(diào)用該方法時(shí)傳入了偶數(shù),這時(shí)應(yīng)該拋出異常,以方便程序員解決代碼錯(cuò)誤。
NSError
對于預(yù)期錯(cuò)誤,如用戶錯(cuò)誤和設(shè)備環(huán)境錯(cuò)誤,應(yīng)該使用NSError。例如:一個(gè)方法需要讀取用戶照片,但是沒有訪問用戶相冊的權(quán)限,這時(shí)應(yīng)該向方法調(diào)用者返回一個(gè)NSError對象,指出不能執(zhí)行本次操作的原因。