Menu
CoddyTech

Exception Kustom

Termasuk bagian Logika dan Alur dalam perjalanan C# di Coddy. Pelajaran 29 dari 66.

Exception kustom memungkinkan kamu membuat tipe exception khusus untuk skenario error yang unik pada aplikasi.

Untuk membuat exception kustom, definisikan class yang mewarisi dari Exception. Pewarisan berarti class barumu otomatis mendapatkan semua perilaku dari class induk, dalam hal ini, Exception, sekaligus memungkinkanmu menambahkan atau menyesuaikan fungsionalitas. Sintaks class MyException : Exception berarti MyException mewarisi Exception.

public class InvalidAgeException : Exception
{
    public InvalidAgeException() : base("Age is not valid.")
    {
    }
    
    public InvalidAgeException(string message) : base(message)
    {
    }
}

: Exception: mewarisi class bawaan Exception.
: base(...): memanggil constructor induk Exception untuk menetapkan pesan error.
Constructor pertama menyediakan pesan default jika tidak ada pesan yang diberikan.
Constructor kedua menerima pesan khusus agar pemanggil dapat menjelaskan error secara terperinci.

Sekarang kamu bisa memunculkan exception kustommu saat diperlukan:

int age = -5;
if (age < 0)
{
    throw new InvalidAgeException("Age cannot be negative.");
}

Saat kode ini dijalankan dengan usia negatif, kode ini akan melempar exception kustom dengan pesan "Usia tidak boleh negatif."

Catatan: Dalam latihan untuk pelajaran ini, fungsi validasi mengembalikan true saat input valid dan melempar exception kustom saat input tidak valid. Karena exception yang tidak ditangani langsung menghentikan eksekusi, kasus uji hanya perlu memverifikasi jalur pengembalian true: exception itu sendiri merupakan hasil yang terlihat untuk input yang tidak valid.

challenge icon

Tantangan

Sedang

Buat custom exception class bernama InvalidTemperatureException yang mewarisi Exception. Class ini harus memiliki:

  1. Konstruktor default yang menetapkan pesan "Temperature is not valid."
  2. Konstruktor yang menerima pesan kustom.

Lalu, implementasikan method bernama checkTemperature yang:

  • Menerima parameter integer yang mewakili suhu dalam Celsius
  • Melempar InvalidTemperatureException dengan pesan "Temperature below absolute zero!" jika suhu kurang dari -273
  • Mengembalikan true jika suhu valid

Coba sendiri

using System;

class CheckTemperature
{
    // Buat class exception khususmu di sini
    
    public static bool checkTemperature(int celsius)
    {
        // Tulis kodemu di sini
    }
    
}
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 C# online