錯誤處理的返回 異常還是返回值

2022-09-11 22:27:24 字數 957 閱讀 5327

推薦使用異常:

因為異常設計就是為了決解:

什麼出了錯?

在哪齣的錯?

為什麼出錯?

1.通過使用異常可以明確 錯誤的型別,錯誤的原因,錯誤出現的地方並且呼叫者強制處理,這提高程式的健壯性(robust)。而返回值方式需要呼叫者主動去處理。

2.使用異常可以使**更加優雅/可讀性提高。不用寫各種if/else判斷情況,只要發生了異常則直接終止程式的執行。

例子:

public

使用異常的方式:

public

class

mainaction

if (!myservice.operationb())

if (!myservice.operationc())

myservice.operationd();

} catch

(operationfailedexception e)

catch

(exception e)

}private

class operationfailedexception extends

exception

}public

void

tip(string msg)

}或者在sevice層的操作中直接丟擲異常,則可以改寫為

trycatch(exception e)

錯誤處理之函式返回值OR異常處理

問題 1 錯誤處理的方法有哪些?2 使用函式返回值還是丟擲異常?3 php 原框架下的異常處理機制是怎樣的?4 php yii框架下的錯誤處理方案是怎樣的?有什麼參考意義?如上所述四種處理方法,成員變數的方式多數使用在處理結果不用立即返回的情況,譬如對多個資料字段進行校驗返回校驗結果,使用場景比較明...

丟擲異常還是約定返回值

b 具體場景如下 b 現在要執行乙個業務操作方法,這個業務方法執行要有n個前置條件滿足才能執行 現在使用統一mvc架構,呼叫者要收到反饋,知道沒ok,根據反饋進行一些列的後續操作,比如通知使用者去哪完善,怎麼完善 那麼怎麼處理?第一種 n個前置條件的檢驗,放到action裡面做,如果不滿足返回相關頁...

recv函式和send函式返回值錯誤處理

本文中分析的都是非阻塞態的socket錯誤 因為阻塞態也不會出現ewouldblock錯誤。返回值 0時並且 errno eintr errno ewouldblock errno eagain 的情況下認為連線是正常的,繼續接收。當socket設定為非阻塞的時候,recv返回錯誤時才會有 errn...