3
我試圖做到以下幾點:從繼承函數拋出異常而不拋出
protocol X{
func foo()
}
enum XError{
case BAR
}
class Y:X{
func foo(){
throw XError.BAR
}
}
我不能添加拋出聲明的協議,並抱怨說,
的錯誤不會被處理,因爲封閉函數不是 聲明'拋出'。
我該如何做到這一點?
因此,如果我繼承方法簽名而沒有從協議拋出我無法控制我不能拋出異常? –
否,因爲任何使用協議實例的代碼都不使用'try'或處理任何異常。 –
所以,如果我添加拋出我的方法簽名,它會停止符合協議,如果我不,我不能有適當的異常處理......是這種語言的某種限制?有辦法解決這個問題嗎? –