NSException和NSError的使用場景不同。
NSException
如果需要指出程式設計師的編碼錯誤,則應該使用NSException
。例如:一個方法只能接受奇數作為引數,但是程式設計師在呼叫該方法時傳入了偶數,這時應該丟擲異常,以方便程式設計師解決程式碼錯誤。
NSError
對於預期錯誤,如使用者錯誤和裝置環境錯誤,應該使用NSError
。例如:一個方法需要讀取使用者照片,但是沒有訪問使用者相簿的許可權,這時應該向方法呼叫者返回一個NSError
物件,指出不能執行本次操作的原因。