生成Thrift tutorial到Java,生成一個接口Calculator.Iface
,其中每個方法聲明拋出一個TException。 爲什麼?爲什麼要在每個接口方法上聲明org.apache.thrift.TException?
爲什麼不直接用業務邏輯保持乾淨?
編輯:我想動機是要知道是否發生在Thrift調用中的事情。那麼爲什麼不讓它成爲運行時異常呢?任何人都有鏈接到一個文件/對話的頭腦風暴Thrift的例外?
生成Thrift tutorial到Java,生成一個接口Calculator.Iface
,其中每個方法聲明拋出一個TException。 爲什麼?爲什麼要在每個接口方法上聲明org.apache.thrift.TException?
爲什麼不直接用業務邏輯保持乾淨?
編輯:我想動機是要知道是否發生在Thrift調用中的事情。那麼爲什麼不讓它成爲運行時異常呢?任何人都有鏈接到一個文件/對話的頭腦風暴Thrift的例外?
我想動機是要知道在Thrift 調用中是否發生了某些事情。那麼爲什麼不讓它成爲運行時異常呢?
可能導致這個決定的一個原因是,使用定義結構的錯誤文件錯誤配置中間人消息協議(如thrift或protobuf)很容易。例如,Protobuf還會拋出一個InvalidProtocolBufferException,當您嘗試解析ByteString
into a structure時,它會延伸IOException
,從而迫使您處理它。
我不是任何形式的檢查異常的粉絲,並且已經在各種論壇和討論舞臺上對其進行了爭論。後來,我正在研究的一個框架需要支持多個消息協議綁定(如thrift,json,protobuf等)。我決定處理檢查的異常,並將其作爲RuntimeParsingException
丟棄,如果我遇到客戶端和服務器結構之間的不一致之處。
當基礎消息協議明天可能發生變化時,期望客戶端處理特定的消息級別協議異常(通過強制執行)是不務實的。
請,請不要點燃檢查的例外flamewar。最後一個問題的答案是「google does」。 – 2015-01-04 14:01:36
@StephenC - 我的意思是節儉特定的文件/對話。 – 2015-01-04 14:25:33