Паніки
Rust обробляє фатальні помилки з “panic”.
Rust викличе паніку, якщо під час виконання станеться фатальна помилка:
- Паніки – це невиправні та несподівані помилки.
- Паніки є ознакою помилок у програмі.
- Збої у виконанні, такі як невдалі перевірки меж, можуть викликати паніку
- Твердження (наприклад,
assert!
) панікують у разі невдачі - Для спеціальних панік можна використовувати макрос
panic!
.
- Паніка “розмотує” стек, відкидаючи значення так, як якщо б функції повернулися.
- Використовуйте API, що не викликають паніки (такі як
Vec::get
), якщо збій неприйнятний.
Speaker Notes
This slide should take about 3 minutes.
За замовчуванням паніка призведе до розмотування стека. Розмотування можна зловити:
- Перехоплення є незвичайним; не намагайтеся реалізувати виключення за допомогою
catch_unwind
! - Це може бути корисним на серверах, які повинні продовжувати працювати навіть у разі збою одного запиту.
- Це не працює, якщо у вашому
Cargo.toml
встановленоpanic = 'abort'
.