Zig Academy · Pelajaran

Memulangkan Ralat daripada Fungsi

Jadikan kegagalan jelas dalam tandatangan fungsi.

Pelajaran 2 daripada 413 langkah

Memulangkan Ralat daripada Fungsi ialah pelajaran Zig Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Zig Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Zig Academy merangkumi sejumlah 4 pelajaran.

Kegagalan dalam Tandatangan

Apabila fungsi boleh gagal, nyatakannya dalam jenis pulangan. Gabungan ralat seperti ParseError!u32 memberi amaran kepada setiap pemanggil dari awal.

fn parse(s: []const u8) ParseError!u32 {
    // ...
}

Kembalikan Nilai Berjaya

Dalam laluan berjaya, anda hanya perlu mengembalikan muatan seperti biasa. Zig membungkus nilai biasa itu ke dalam sisi berjaya gabungan untuk anda.

return 42;

Kembalikan Ralat Sebaliknya

Untuk gagal, kembalikan salah satu ralat anda di tempat yang sama. Satu pernyataan pulangan menentukan sisi gabungan yang anda hasilkan.

if (s.len == 0) return error.Empty;

Satu Pulangan, Dua Hasil

Fungsi dengan gabungan ralat boleh mengembalikan nilai dalam satu cabang dan ralat dalam cabang lain. Kedua-duanya memenuhi jenis yang diisytiharkan.

if (ok) return value;
return error.Failed;

Void Bersama Ralat

Fungsi yang melakukan kerja tetapi tidak menghasilkan nilai masih boleh gagal. Gunakan !void supaya fungsi itu tidak mengembalikan apa-apa apabila berjaya atau mengembalikan ralat apabila gagal.

fn save() !void {
    // ...
}

Ralat Mengalir Naik di Tapak Panggilan

Apabila anda memanggil fungsi yang boleh gagal, anda juga menerima gabungan ralat. Anda tidak boleh mengabaikannya; pengkompil memaksa anda untuk menanganinya.

const n = parse(input);

Tangkap Ralat dengan if

if boleh memisahkan gabungan itu: tangkap nilai dalam cabang utama dan ralat selepas else, dengan menamakan setiap satunya menggunakan paip.

if (parse(input)) |n| {
    use(n);
} else |err| {
    report(err);
}

Namakan Set Ralat dengan Tepat

Menyenaraikan set yang tepat sebelum ! memastikan kontrak anda benar. Pemanggil mengetahui senarai penuh kegagalan tanpa membaca isi fungsi.

fn open(p: []const u8) FileError!File {}

Ralat Merentasi Sempadan Fungsi

Ralat yang dikembalikan jauh di dalam kod anda bergerak ke luar hanya apabila setiap fungsi dalam rantaian mengisytiharkan bahawa ia juga boleh gagal.

Jadikan Kegagalan Jelas

Inilah teras pengendalian ralat Zig: kegagalan tidak pernah disembunyikan. Tandatangan ialah janji tentang perkara yang boleh menjadi tidak kena.

Pengkompil Menyokong Anda

Jika anda terlupa menangani ralat yang dikembalikan, binaan akan gagal. Zig enggan membiarkan kemungkinan kegagalan terlepas secara senyap.

Semakan Pantas

Sesuatu fungsi melakukan kerja tetapi tidak mengembalikan nilai yang berguna, namun ia mungkin gagal. Apakah jenis pulangan yang sesuai?

Imbas Kembali

Anda telah mengisytiharkan fungsi yang boleh gagal dengan !T, mengembalikan nilai atau ralat daripada satu pernyataan pulangan, dan melihat pengkompil memaksa pemanggil menanganinya. ✅

Percuma untuk bermula

Pelajari Zig dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
30
Pelajaran
120

Soalan Lazim

Adakah pelajaran “Memulangkan Ralat daripada Fungsi” percuma?

Ya — teks penuh “Memulangkan Ralat daripada Fungsi” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Zig Academy, tingkat taraf kepada CoddyKit PRO. Kursus Zig Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Memulangkan Ralat daripada Fungsi”?

Jadikan kegagalan jelas dalam tandatangan fungsi. Anda berlatih Zig Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Zig Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Zig Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Memulangkan Ralat daripada Fungsi” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Zig Academy ini?

Ya. Setiap pelajaran Zig Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Set Ralat dan Kesatuan !T
  2. Memulangkan Ralat daripada Fungsi
  3. Menyebarkan Kegagalan dengan try
  4. Set Ralat Berinferens
← Kembali ke Zig Academy