Что касается обработки исключений в RPC-интерфейсе , обычно у нас есть 2 общих способа:
- Подход 1 : объявить исключение CheckedException в сигнатуре метода интерфейса (перехватить исключение и выдать исключение CheckedException). И пусть звонящий справится с этим.
- Подход 2 : поймать Exception и обернуть специфичные
isSuccess
, errorCode
и errorMsg
в возвращаемый объект. Звонивший судья оценивает, добился ли успех, проверяя возвращаемый Объект.
Я провел некоторое исследование, похоже, у обоих двух сторон есть несколько сторонников. Лично я предпочитаю Подход № 1, потому что это классический способ Java.
Какой способ лучше и почему?