История изменений
Исправление tailgunner, (текущая версия) :
Какой-нибудь умник определяет интерфейс и декларирует, что некий метод getContent бросает FileNotFoundException. Тебе приходится делать реализацию этого метода, но у тебя нет никаких файлов, у тебя, например, есть работа с сетью.
По-моему, это какой-то особый юзкейс - интерфейс, между реализациями которого нет вообще ничего общего (и для которых невозможно определить общие ошибки). А я говорю о конкретных реализациях, когда ты точно знаешь, что работаешь с сетью, и разбираешься с сетевыми ошибками.
Ты имеешь в виду, что эту учебную задачу ты можешь решить и по-другому?
Нет
Хм. Ну то есть ты используешь исключение так, как я бы использовал ошибочную часть Result/ Да, так можно. А если ошибочная часть Result - sum type, то разные catch выполнят pattern matching. Ты делаешь Rust из Си++, с throw вместо return.
Исправление tailgunner, :
Какой-нибудь умник определяет интерфейс и декларирует, что некий метод getContent бросает FileNotFoundException. Тебе приходится делать реализацию этого метода, но у тебя нет никаких файлов, у тебя, например, есть работа с сетью.
По-моему, это какой-то особый юзкейс - интерфейс, между реализациями которого нет вообще ничего общего (и для которых невозможно определить общие ошибки). А я говорю о конкретных реализациях, когда ты точно знаешь, что работаешь с сетью, и разбираешься с сетевыми ошибками.
Ты имеешь в виду, что эту учебную задачу ты можешь решить и по-другому?
Нет
Да. Ты по сути говоришь «а у меня есть глобальный объект, в котором хранится ровно та последняя ошибка, которую вернула бы функция, я буду смотреть туда, и мне надо только знать факт, что произошла ошибка».
Исходная версия tailgunner, :
Какой-нибудь умник определяет интерфейс и декларирует, что некий метод getContent бросает FileNotFoundException. Тебе приходится делать реализацию этого метода, но у тебя нет никаких файлов, у тебя, например, есть работа с сетью.
По-моему, это какой-то особый юзкейс - интерфейс, между реализациями которого нет вообще ничего общего (и для которых невозможно определить общие ошибки). А я говорю о конкретных реализациях, когда ты точно знаешь, что работаешь с сетью, и разбираешься с сетевыми ошибками.
Ты имеешь в виду, что эту учебную задачу ты можешь решить и по-другому?
Нет
Да. Ты по сути говоришь «а у меня есть глобальный объект, в котором хранится последняя ошибка, я буду смотреть туда и мне без разницы, что там вернула функция».