Может быть или не быть разницы в зависимости от вашего определения того, что происходит, когда происходит паника (определено в Cargo.toml
). В зависимости от того, установлен ли он на unwind
или abort
, могут происходить разные вещи:
- При
unwind
это (как следует из названия) разматывает стек. При этом, в частности, можно получить полную трассировку стека - . При
abort
вы получите только последнего вызываемого
process::exit()
, с другой стороны, это «чистый» выход - вы не получите последнего вызываемого, и вы получите статус регулярного выхода из процесса.
В связи с этим вам в идеале нужно придерживаться следующего:
- Для плановых отключений используйте
exit()
. Обратите внимание, что известная ошибка считается запланированным завершением - . Для незапланированных отключений (т.е. исключительных сбоев) учитывайте
panic!()
, поскольку вы оба получите возможность получить трассировку стека, когда это произойдет, ислучай неудачи должен быть достаточно исключительным, чтобы он фактически не учитывался и проистекает из незапланированного сценария