Сообщение Re: Result objects - все-таки победили Exceptions? от 06.01.2025 6:21
Изменено 06.01.2025 6:22 Pavel Dvorkin
Re: Result objects - все-таки победили Exceptions?
Здравствуйте, Shmj, Вы писали:
S>Ну вот рекомендации в новомодных языках: https://docs.flutter.dev/app-architecture/design-patterns/result
S>- все-таки топят за Result objects для бизнес-логики.
S>А ведь это всю цепочку поддерживать. Как-то много лишних букв добавляется.
Что ни делай — результат один и тот же.
Если обрабатывать надо не в точке вызова метода, в котором ошибка, а выше, то так или иначе придется передавать эту ошибку выше. Если использовать исключения, код обеспечит компилятор, если коды ошибок — пиши сам.
Исключения, в общем, проще.
У них ИМХО только один недостаток — их нельзя игнорировать. Коды ошибок можно, если знаешь, что тут что с ошибкой, что бе ошибки — все равно.
Я как-то писал на C# удаление 0-го элемента из listbox. Все было замечательно, пока не оказалось, что в листбоксе нет вообще элементов. Я об этом не подумал, так как на Win API если послать сообщение LB_DELETESTRING при нулевом количестве элементов, то, конечно, получишь LB_ERR, но его можно спокойно проигнорировать, так как все, что нужно — чтобы элемента не было. Был он — чтобы его не было, не было — тоже чтобы не было, а какой из этих 2 вариантов сработал — неважно. А на C# пришлось условие ставить.
S>Ну вот рекомендации в новомодных языках: https://docs.flutter.dev/app-architecture/design-patterns/result
S>- все-таки топят за Result objects для бизнес-логики.
S>А ведь это всю цепочку поддерживать. Как-то много лишних букв добавляется.
Что ни делай — результат один и тот же.
Если обрабатывать надо не в точке вызова метода, в котором ошибка, а выше, то так или иначе придется передавать эту ошибку выше. Если использовать исключения, код обеспечит компилятор, если коды ошибок — пиши сам.
Исключения, в общем, проще.
У них ИМХО только один недостаток — их нельзя игнорировать. Коды ошибок можно, если знаешь, что тут что с ошибкой, что бе ошибки — все равно.
Я как-то писал на C# удаление 0-го элемента из listbox. Все было замечательно, пока не оказалось, что в листбоксе нет вообще элементов. Я об этом не подумал, так как на Win API если послать сообщение LB_DELETESTRING при нулевом количестве элементов, то, конечно, получишь LB_ERR, но его можно спокойно проигнорировать, так как все, что нужно — чтобы элемента не было. Был он — чтобы его не было, не было — тоже чтобы не было, а какой из этих 2 вариантов сработал — неважно. А на C# пришлось условие ставить.
Re: Result objects - все-таки победили Exceptions?
Здравствуйте, Shmj, Вы писали:
S>Ну вот рекомендации в новомодных языках: https://docs.flutter.dev/app-architecture/design-patterns/result
S>- все-таки топят за Result objects для бизнес-логики.
S>А ведь это всю цепочку поддерживать. Как-то много лишних букв добавляется.
Что ни делай — результат один и тот же.
Если обрабатывать надо не в точке вызова метода, в котором ошибка, а выше, то так или иначе придется передавать эту ошибку выше. Если использовать исключения, код обеспечит компилятор, если коды ошибок — пиши сам.
Исключения, в общем, проще.
У них ИМХО только один недостаток — их нельзя игнорировать. Коды ошибок можно, если знаешь, что тут что с ошибкой, что без ошибки — все равно.
Я как-то писал на C# удаление 0-го элемента из listbox. Все было замечательно, пока не оказалось, что в листбоксе нет вообще элементов. Я об этом не подумал, так как на Win API если послать сообщение LB_DELETESTRING при нулевом количестве элементов, то, конечно, получишь LB_ERR, но его можно спокойно проигнорировать, так как все, что нужно — чтобы элемента не было. Был он — чтобы его не было, не было — тоже чтобы не было, а какой из этих 2 вариантов сработал — неважно. А на C# пришлось условие ставить.
S>Ну вот рекомендации в новомодных языках: https://docs.flutter.dev/app-architecture/design-patterns/result
S>- все-таки топят за Result objects для бизнес-логики.
S>А ведь это всю цепочку поддерживать. Как-то много лишних букв добавляется.
Что ни делай — результат один и тот же.
Если обрабатывать надо не в точке вызова метода, в котором ошибка, а выше, то так или иначе придется передавать эту ошибку выше. Если использовать исключения, код обеспечит компилятор, если коды ошибок — пиши сам.
Исключения, в общем, проще.
У них ИМХО только один недостаток — их нельзя игнорировать. Коды ошибок можно, если знаешь, что тут что с ошибкой, что без ошибки — все равно.
Я как-то писал на C# удаление 0-го элемента из listbox. Все было замечательно, пока не оказалось, что в листбоксе нет вообще элементов. Я об этом не подумал, так как на Win API если послать сообщение LB_DELETESTRING при нулевом количестве элементов, то, конечно, получишь LB_ERR, но его можно спокойно проигнорировать, так как все, что нужно — чтобы элемента не было. Был он — чтобы его не было, не было — тоже чтобы не было, а какой из этих 2 вариантов сработал — неважно. А на C# пришлось условие ставить.