LINUX.ORG.RU

История изменений

Исправление tailgunner, (текущая версия) :

Какой-нибудь умник определяет интерфейс и декларирует, что некий метод getContent бросает FileNotFoundException. Тебе приходится делать реализацию этого метода, но у тебя нет никаких файлов, у тебя, например, есть работа с сетью.

По-моему, это какой-то особый юзкейс - интерфейс, между реализациями которого нет вообще ничего общего (и для которых невозможно определить общие ошибки). А я говорю о конкретных реализациях, когда ты точно знаешь, что работаешь с сетью, и разбираешься с сетевыми ошибками.

Ты имеешь в виду, что эту учебную задачу ты можешь решить и по-другому?

Нет

Хм. Ну то есть ты используешь исключение так, как я бы использовал ошибочную часть Result/ Да, так можно. А если ошибочная часть Result - sum type, то разные catch выполнят pattern matching. Ты делаешь Rust из Си++, с throw вместо return.

Исправление tailgunner, :

Какой-нибудь умник определяет интерфейс и декларирует, что некий метод getContent бросает FileNotFoundException. Тебе приходится делать реализацию этого метода, но у тебя нет никаких файлов, у тебя, например, есть работа с сетью.

По-моему, это какой-то особый юзкейс - интерфейс, между реализациями которого нет вообще ничего общего (и для которых невозможно определить общие ошибки). А я говорю о конкретных реализациях, когда ты точно знаешь, что работаешь с сетью, и разбираешься с сетевыми ошибками.

Ты имеешь в виду, что эту учебную задачу ты можешь решить и по-другому?

Нет

Да. Ты по сути говоришь «а у меня есть глобальный объект, в котором хранится ровно та последняя ошибка, которую вернула бы функция, я буду смотреть туда, и мне надо только знать факт, что произошла ошибка».

Исходная версия tailgunner, :

Какой-нибудь умник определяет интерфейс и декларирует, что некий метод getContent бросает FileNotFoundException. Тебе приходится делать реализацию этого метода, но у тебя нет никаких файлов, у тебя, например, есть работа с сетью.

По-моему, это какой-то особый юзкейс - интерфейс, между реализациями которого нет вообще ничего общего (и для которых невозможно определить общие ошибки). А я говорю о конкретных реализациях, когда ты точно знаешь, что работаешь с сетью, и разбираешься с сетевыми ошибками.

Ты имеешь в виду, что эту учебную задачу ты можешь решить и по-другому?

Нет

Да. Ты по сути говоришь «а у меня есть глобальный объект, в котором хранится последняя ошибка, я буду смотреть туда и мне без разницы, что там вернула функция».