Преимущества использования panic в коде:
- возможность быстро обработать неожиданные ошибки, которые не должны возникать в нормальных операциях; 5
- отсутствие необходимости работать с несколькими возвращаемыми значениями и писать утомительные проверки; 5
- более простой для чтения код. 5
Недостатки использования panic:
- при отсутствии использования recover программа завершится; 5
- при освобождении стека GO собирает информацию о всём стеке вызовов, что может быть медленным; 5
- функция recover возвращает interface{}, поэтому нужно проводить проверку типа полученных значений, что также может быть медленным (особенно в случаях отражения). 5
Таким образом, чрезмерное использование panic может затруднить чтение и сопровождение кода. 3 Рекомендуется оставлять использование этих функций для действительно исключительных обстоятельств. 3