Для первой части нет: return
- это ключевое слово, а не выражение, поэтому оно не может сочетаться в этой форме. Я думаю, вы инстинктивно читаете ||
буквально как значение «или» в смысле английского языка - очевидно, это не то, что это значит.
Для второй части вы могли бы - теоретически - используя исключения, но это сильно обескураженная практика. Исключения предназначены для «исключительных обстоятельств», а более конкретно, условий ошибки, из-за которых код не может восстанавливаться локально (в контексте текущей функции/метода) и где надлежащее действие должно быть определено на более высоком уровне.
Использование исключений в качестве общего механизма управления потоком имеет две проблемы:
Производительность: C++ компиляторы оптимизированы для «неисключительных» кодовых путей (потому что это то, что должно происходить нормально) и поэтому механизмы обработки исключений, как правило, очень медленные. Это связано не с отсутствием оптимизации кода, а с необходимостью того, чтобы механизм имел нулевую или почти нулевую стоимость, если нет исключений, даже если затраты на исключения требуют много работы для обработки.
Ясность/проверяемость кода: использование исключений для потока управления делает код чрезвычайно трудным для чтения и модульного тестирования надлежащим образом изолированным.
Возможно, вы хотите прочитать об исключениях. И нет, 'return' не является выражением, и вы не можете использовать его так. –
u can; t использовать такой синтаксис. для ошибки см. исключения – qwr
Для вашего «еще лучшего» вопроса исключения - это путь. –