Передача сбоев с помощью try
Передавайте ошибки выше одним ключевым словом.
«Передача сбоев с помощью try» — бесплатный урок Zig Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Zig Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Zig Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Handling Gets Repetitive
Writing an if-else around every fallible call to forward its error gets noisy fast. Zig offers a shortcut: the try keyword.
try Unwraps or Returns
Put try before a fallible call. On success it hands you the value; on error it returns that error from your current function.
const n = try parse(input);It Is Pure Sugar
That one line is exactly the same as catching the error and returning it yourself. try just writes the boilerplate for you.
const n = parse(input) catch |e| return e;Your Function Must Be Fallible
Because try can return an error, the enclosing function needs an error union return type. Otherwise the compiler rejects it.
fn run() !void {
const n = try parse(input);
}Chain Many tries
Stack several try calls in a row. Each one stops the function early on failure, so the happy path reads top to bottom.
const f = try open(path);
const data = try read(f);try in the Middle of Expressions
You can place try right inside a larger expression. The unwrapped value flows straight into the surrounding call or math.
const total = base + try parse(input);try with void Calls
Even when a call returns !void, use try to forward any failure. You get no value back, only the early return on error.
try file.writeAll(data);Errors Climb the Stack
With try in every layer, a failure deep down propagates all the way up until some caller finally decides to handle it.
Readable Happy Path
The big win is clarity: error forwarding fades into a single keyword, so the main logic stays front and center.
try Does Not Handle
Remember that try only forwards an error; it never recovers from one. To react locally you reach for catch instead.
When to Forward
Use try when the right move is to let the caller deal with failure. Most intermediate functions simply pass errors upward.
Quick Check
You write try doThing() inside a function. What happens if doThing returns an error?
Recap
You learned that try unwraps on success and returns the error otherwise. It is shorthand for catch and forward, keeping code clean. ✅
Часто задаваемые вопросы
Урок «Передача сбоев с помощью try» бесплатный?
Да — полный текст урока «Передача сбоев с помощью try» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Zig Academy, подпишись на CoddyKit PRO. Курс Zig Academy содержит 4 уроков всего.
Чему я научусь в уроке «Передача сбоев с помощью try»?
Передавайте ошибки выше одним ключевым словом. Ты практикуешь Zig Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Zig Academy?
Предыдущий опыт не требуется. Zig Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Передача сбоев с помощью try»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Zig Academy?
Да. Каждый урок Zig Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Наборы ошибок и объединение !T
- Возврат ошибок из функций
- Передача сбоев с помощью try
- Выводимые наборы ошибок