Помимо очевидного, что panic
ничего не проверяет, в то время как assert
делает, в Go вы можете использовать механику для обработки ошибок, даже когда возникает паника.
Если пакет думает, что происходит что-то, что не может быть восстановлено, он паникует.
Однако пользователь пакета, вызывающая сторона (родительский уровень) может либо захотеть проверить или зарегистрировать панику, а затем продолжить панику, либо поймать ее, чтобы правильно обработать случай (например, повторить попытку или использовать другой пакет / функция).
Кроме того, assert-abort не вызывает деструкторы или что-либо еще. Паника в Go, тем не менее, будет вызывать даже те функции, которые вы defer
будут выполнять, поэтому все вычищено.
Итак, как вы можете видеть, паника позволит выполнять множество задач по очистке в отличие от утверждений. Вот на что ты указывал цитату.
Хорошую информацию об отсрочке, панике и восстановлении см. В официальном сообщении о них .