Blok 'try...catch'
Termasuk bagian Logika dan Alur dalam perjalanan PHP di Coddy. Pelajaran 53 dari 68.
Saat kodemu dalam PHP mengalami masalah yang dapat membuatnya berhenti, kamu perlu cara untuk menangani situasi tersebut dengan baik. Blok try...catch menyediakan pendekatan terstruktur untuk menangani exception, yaitu object error khusus yang mewakili masalah serius dalam kodemu.
Blok try berisi kode yang mungkin gagal atau memunculkan pengecualian. Jika pengecualian terjadi di dalam blok ini, PHP langsung berhenti menjalankan kode yang tersisa di blok try dan beralih ke blok catch yang sesuai. Blok catch menangani pengecualian tersebut, sehingga skripmu dapat terus berjalan alih-alih mengalami crash.
<?php
try {
// Kode yang mungkin memunculkan pengecualian
$result = riskyFunction();
echo "Success!";
} catch (Exception $e) {
// Tangani pengecualian tersebut
echo "An error occurred: " . $e->getMessage();
}
?>Blok catch menerima objek Exception yang berisi informasi tentang hal yang bermasalah. Kamu dapat mengakses pesan error menggunakan method getMessage(). Pendekatan ini mencegah seluruh skripmu berhenti saat terjadi masalah, sehingga kamu dapat mengendalikan cara menangani error dan hal yang dilihat pengguna.
Kamu juga dapat melempar exception sendiri dengan kata kunci throw. PHP lalu langsung melompat ke blok catch, dan getMessage() mengembalikan pesanmu:
throw new Exception("Custom error message");Tantangan
MudahKamu akan menerima satu input: angka yang mewakili nilai usia. Input mungkin berupa angka negatif, yang tidak valid untuk usia.
Baca input, ubah menjadi bilangan bulat, lalu buat blok try...catch. Di dalam blok try, periksa apakah usia bernilai negatif. Jika negatif, lempar Exception baru dengan pesan "Age cannot be negative". Jika usia valid (nol atau positif), cetak "Valid age: " diikuti nilai usia.
Di dalam blok catch, tangani exception dengan mencetak "Error: " diikuti pesan exception menggunakan method getMessage().
Format input: Satu baris berisi bilangan bulat (contoh: 25 atau -5)
Output yang diharapkan:
- Jika usia valid:
Valid age:diikuti nilai usia - Jika usia negatif:
Error: Age cannot be negative
Coba sendiri
<?php
// Baca input
$age = intval(fgets(STDIN));
// TODO: Tulis kodemu di bawah ini
// Buat blok try...catch untuk memvalidasi usia
?>Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Fungsi Lanjutan
Fungsi AnonimClosure dan 'use'Fungsi PanahFungsi CallbackMenggunakan 'call_user_func'Fungsi VariabelMengirim dengan ReferensiFungsi RekursifUlasan: Ragam Fungsi4Array Multidimensi
Membuat array 2DMengakses Elemen array 2DMengubah Elemen array 2DMelakukan Perulangan dengan loop Bersarangarray Asosiatif 2DRekap: Latihan Kisi Sederhana2Manipulasi array Lanjutan
Menambahkan dengan 'array_push'Menghapus dengan 'array_pop'Menambahkan dengan 'array_unshift'Menghapus dengan 'array_shift'Menggabungkan array berindeksMenggabungkan array asosiatifMengambil bagian dengan 'array_slice'Nilai dengan 'in_array'Kunci dengan 'array_search'Rekap: Latihan playlist5Buku Nilai Siswa
Penyiapan Proyek: Struktur DataMenambahkan Siswa BaruMenambahkan Nilai untuk SiswaMenghitung Nilai Rata-Rata SiswaMenemukan Siswa dengan Nilai TertinggiMembuat Rapor8Penanganan Error dan Exception
Memahami Error PHPBlok 'try...catch'Blok 'finally'Melempar ExceptionMembuat Exception KustomMenggunakan Exception KustomRingkasan: Validasi input3Mengurutkan array
Urutkan array berindeks secara menaikUrutkan array berindeks secara menurunUrutkan assoc array berdasarkan nilaiUrutkan assoc array berdasarkan kunciPengurutan urutan alamiPengurutan khusus dengan 'usort'Rangkuman: Pengurutan papan peringkatLatihan sendiri: Compiler PHP online