Menu
CoddyTech

Blok 'try...catch'

Termasuk bagian Logika dan Alur dalam perjalanan PHP di Coddy. Pelajaran 53 dari 68.

Saat kodemu mengalami masalah yang dapat menyebabkan program berhenti, kamu perlu cara untuk menangani situasi ini 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 exception. Jika exception terjadi di dalam blok ini, PHP segera berhenti menjalankan sisa kode di blok try dan beralih ke blok catch yang sesuai. Blok catch menangani exception 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 object Exception yang berisi informasi tentang apa yang salah. Kamu bisa mengakses pesan error menggunakan method getMessage(). Pendekatan ini mencegah seluruh skripmu berhenti saat terjadi kesalahan, sehingga kamu bisa mengontrol cara menangani error dan apa yang dilihat pengguna.

challenge icon

Tantangan

Mudah

Kamu akan menerima satu input, yaitu 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, lemparkan Exception baru dengan pesan "Age cannot be negative". Jika usia valid (nol atau positif), cetak "Valid age: " diikuti nilai usia.

Di blok catch, tangani exception dengan mencetak "Error: " diikuti pesan exception menggunakan method getMessage().

Format input: Satu baris yang 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


?>
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler PHP online