do/catch & mendefinisikan galat (enum)
Definisikan enum galat, lempar dari fungsi, dan tangani kegagalan dengan pola do/catch (kasus khusus, catch let, catch umum).
do/catch & mendefinisikan galat (enum) adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 3 pelajaran total.
Gambaran Umum
Pelajaran ini berfokus pada pendefinisian kesalahan bertipe dan penanganannya dengan blok tangkap. Anda akan melemparkan enumerasi dan menangkap kasus tertentu untuk jalur pemulihan yang jelas.
Enumerasi Kesalahan
Definisikan enumerasi khusus yang sesuai dengan Error. Nilai terkait menambahkan konteks yang bermanfaat.
enum FileError: Error {
case notFound(path: String)
case unreadable(path: String)
case corrupted
}
print("Defined FileError enum")Dasar-Dasar Pelemparan Kesalahan
Tandai fungsi yang dapat gagal sebagai fungsi yang melemparkan kesalahan. Lemparkan kasus tertentu ketika prasyarat tidak terpenuhi.
func loadText(from path: String) throws -> String {
if path.isEmpty { throw FileError.notFound(path: "(empty)") }
if !path.hasSuffix(".txt") { throw FileError.unreadable(path: path) }
return "Contents of " + path
}
print("Ready to throw on bad input")Penangkapan Spesifik
Gunakan blok penanganan. Tempatkan kasus penangkapan khusus terlebih dahulu, lalu penangkapan umum untuk sisanya.
do {
let text = try loadText(from: "notes.txt")
print(text)
} catch FileError.notFound(let p) {
print("Missing file at:", p)
} catch FileError.unreadable(let p) {
print("Cannot read:", p)
} catch {
print("Other error:", error)
}Menangkap Kesalahan & Memilih Kasus
Gunakan penangkapan kesalahan sebagai YourError, lalu gunakan switch untuk memformat pesan yang mudah dipahami pengguna.
do {
_ = try loadText(from: "")
} catch let error as FileError {
switch error {
case .notFound(let p): print("not found:", p)
case .unreadable(let p): print("unreadable:", p)
case .corrupted: print("file corrupted")
}
} catch {
print("unexpected:", error.localizedDescription)
}Memulihkan vs Melemparkan Ulang
Tentukan apakah akan memulihkan dengan mengembalikan nilai cadangan atau melemparkan ulang ke pemanggil. Buat aturannya sederhana dan mudah diprediksi.
func mustLoad(_ path: String) throws -> String {
do {
return try loadText(from: path)
} catch FileError.notFound {
// simple recovery: default content
return "New file template"
} catch {
// escalate unknown issues
throw error
}
}
print(try? mustLoad("report.txt") ?? "(nil)")Pola Kesalahan Khusus
Pemeriksaan singkat: Apa cara idiomatis untuk mendefinisikan kesalahan khusus?
Ringkasan
Ringkasan: Definisikan kesalahan bertipe dengan enumerasi yang sesuai dengan Error, lemparkan kasus yang tepat, lalu tangani melalui blok tangkap dengan cabang khusus terlebih dahulu dan cabang umum terakhir.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “do/catch & mendefinisikan galat (enum)” gratis?
Ya — teks lengkap “do/catch & mendefinisikan galat (enum)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 3 pelajaran total.
Apa yang akan aku pelajari di “do/catch & mendefinisikan galat (enum)”?
Definisikan enum galat, lempar dari fungsi, dan tangani kegagalan dengan pola do/catch (kasus khusus, catch let, catch umum). Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Swift Academy?
Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 3.
Berapa lama pelajaran “do/catch & mendefinisikan galat (enum)” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?
Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Dasar optional chaining & penanganan galat
- do/catch & mendefinisikan galat (enum)
- Tipe Result — Result