Показать сообщение отдельно
Старый 30.07.2021, 18:33   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Но как и остальным написавшим мне тоже это всё не нравится. Якобы "безопасный" метод, который перехватывает свои исключения и не отдаёт их наружу не должен быть нормой.
да, было бы нормой.
но в аксапте в транзакции срабатывает только самый внешний catch.
поэтому никаких гарантий перехват не даст.

методы NoThrow могут означать, что сам метод исключений не бросает.
но исключение внутри этого метода может бросить ядро.
Поэтому суффикс NoThrow не дает никаких гарантий относительно исключений.

методы с OrThrow означают, что метод содержит throw, который явно вставил автор кода.

Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Это скорее исключение, синтаксический сахар. Это грязный метод, после вызова которого остаётся неопределённость: а что именно выполнилось, что откатилось. Лучше так не делать, а если уж делать такие методы, то пусть их будет видно издалека.
угу. я собственно поэтому и спрашиваю

да, именно про синтаксический сахар, который помогает понять код.
и самому не забывать о.
пример написания самих методов https://github.com/mazzy-ax/SysUtil/....xpp#L498-L519
пример использования я привел выше

Цитата:
Сообщение от trud Посмотреть сообщение
а почему только boolean в параметрах. иногда приходится писать что-то где есть 3 значения.
пиши.

Цитата:
Сообщение от trud Посмотреть сообщение
Т.е. это один метод типа validateAndWrite с параметром типа enum
(o_O)

ты ведь обратил внимание, что мы не сам метод validateAndWrite обсуждаем?
а оформление, которое касается исключений (Throw - NoThrow - OrThrow).
и о том, как оформление кода может помочь, а может запутать читателя.
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 30.07.2021 в 18:40.