В исключении больше накладных расходов, поэтому возникает проблема с производительностью, особенно когда можно ожидать, что она будет часто генерироваться, как в случае с save
.
Это меньше строккода, чтобы проверить, является ли возвращаемое значение ложным, чем спасти исключение, поэтому я не вижу, как это проблема с проверкой возвращаемого значения, если вы уже должны спасти исключение.Как часто исключение, выдаваемое save!
, когда-либо будет накапливать стек вызовов на практике?Редко, если вообще когда-либо, по моему опыту.
Если при вызове save
возникает исключение, а не save!
, вы должны захотеть, чтобы на нем отображалась страница с ошибкой 500, потому что это то, что произошло: неисправимо,неизвестная, неожиданная внутренняя ошибка сервера.