Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

PHP Dasar

Pelajaran 14 dari 15

PHP di web: formulir, basis data, dan galat

Menangani galat: try, catch, finally

Setelah pelajaran ini kamu bisa menelusuri alur try/catch/finally dan menentukan apakah sebuah galat tertangkap oleh catch (Exception).

±13 menitDiperiksa 5 Okt 2026

Materi

`throw new Exception("pesan")` menghentikan alur normal dan melempar galat ke atas. Bila lemparan terjadi di dalam blok `try`, sisa blok try dilewati dan PHP mencari `catch` yang jenisnya cocok. `$e->getMessage()` membaca pesannya. Blok `finally` dijalankan di akhir, baik ada galat maupun tidak.

PHP punya dua cabang galat yang bisa ditangkap, keduanya turunan `Throwable`. `Exception` dipakai untuk galat yang dilempar program dan pustaka, misalnya `InvalidArgumentException` atau galat PDO. `Error` dipakai untuk galat dari mesin PHP sendiri: `TypeError` saat argumen tidak sesuai tipe parameter, dan `DivisionByZeroError` saat `intdiv` atau `%` membagi dengan nol (sejak PHP 8, `/` dengan nol juga). `catch (Exception $e)` TIDAK menangkap Error. Galat yang tidak tertangkap menghentikan program dengan `Fatal error: Uncaught ...`.

Parameter bertipe `int` menerima string berisi angka seperti "4" dan mengubahnya menjadi 4. String yang bukan angka, seperti "empat", ditolak dengan TypeError.

<?php
try {
    echo intdiv(10, 0);
} catch (DivisionByZeroError $e) {
    echo "Tidak bisa: " . $e->getMessage();
}
Tidak bisa: Division by zero

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Apa keluaran program ini?

<?php
function bagiRata($total, $orang) {
    if ($orang <= 0) {
        throw new Exception("Jumlah orang harus lebih dari nol");
    }
    return $total / $orang;
}

try {
    echo bagiRata(90000, 3) . " ";
    echo bagiRata(50000, 0) . " ";
    echo "selesai ";
} catch (Exception $e) {
    echo "Galat: " . $e->getMessage() . " ";
} finally {
    echo "tutup";
}
Pilih satu jawaban

Latihan 2 dari 3

Apa yang terjadi saat program ini dijalankan?

<?php
try {
    echo intdiv(10, 0);
} catch (Exception $e) {
    echo "Ditangkap";
}
echo " Lanjut";
Pilih satu jawaban

Latihan 3 dari 3

Apa yang terjadi saat program ini dijalankan?

<?php
function luasKamar(int $panjang, int $lebar): int {
    return $panjang * $lebar;
}
echo luasKamar("4", 3) . " ";
echo luasKamar("empat", 3);
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke