2015-01-04 88 views
0

生成Thrift tutorial到Java,生成一個接口Calculator.Iface,其中每個方法聲明拋出一個TException。 爲什麼?爲什麼要在每個接口方法上聲明org.apache.thrift.TException?

爲什麼不直接用業務邏輯保持乾淨?

編輯:我想動機是要知道是否發生在Thrift調用中的事情。那麼爲什麼不讓它成爲運行時異常呢?任何人都有鏈接到一個文件/對話的頭腦風暴Thrift的例外?

+0

請,請不要點燃檢查的例外flamewar。最後一個問題的答案是「google does」。 – 2015-01-04 14:01:36

+0

@StephenC - 我的意思是節儉特定的文件/對話。 – 2015-01-04 14:25:33

回答

1

我想動機是要知道在Thrift 調用中是否發生了某些事情。那麼爲什麼不讓它成爲運行時異常呢?

可能導致這個決定的一個原因是,使用定義結構的錯誤文件錯誤配置中間人消息協議(如thrift或protobuf)很容易。例如,Protobuf還會拋出一個InvalidProtocolBufferException,當您嘗試解析ByteStringinto a structure時,它會延伸IOException,從而迫使您處理它。

我不是任何形式的檢查異常的粉絲,並且已經在各種論壇和討論舞臺上對其進行了爭論。後來,我正在研究的一個框架需要支持多個消息協議綁定(如thrift,json,protobuf等)。我決定處理檢查的異常,並將其作爲RuntimeParsingException丟棄,如果我遇到客戶端和服務器結構之間的不一致之處。

當基礎消息協議明天可能發生變化時,期望客戶端處理特定的消息級別協議異常(通過強制執行)是不務實的。

相關問題