Bagikan melalui


Cara menangani pengecualian menggunakan try/catch

Tujuan dari blok try-catch adalah menangkap dan menangani pengecualian yang dihasilkan oleh kode kerja. Beberapa pengecualian dapat ditangani dalam blok catch dan masalah diselesaikan tanpa pengecualian yang ditumbuhi kembali; namun, lebih sering satu-satunya hal yang dapat Anda lakukan adalah memastikan bahwa pengecualian yang sesuai dilemparkan.

Contoh

Dalam contoh ini, IndexOutOfRangeException bukan pengecualian yang paling tepat: ArgumentOutOfRangeException lebih masuk akal untuk metode karena kesalahan disebabkan oleh argumen index yang diteruskan oleh pemanggil.

static int GetInt(int[] array, int index)
{
    try
    {
        return array[index];
    }
    catch (IndexOutOfRangeException e)  // CS0168
    {
        Console.WriteLine(e.Message);
        // Set IndexOutOfRangeException to the new exception's InnerException.
        throw new ArgumentOutOfRangeException("index parameter is out of range.", e);
    }
}

Komentar

Kode yang menyebabkan pengecualian diapit dalam blok try. Pernyataan catch ditambahkan segera setelah itu untuk menangani IndexOutOfRangeException, jika itu terjadi. Blok catch menangani IndexOutOfRangeException dan melemparkan yang lebih tepat ArgumentOutOfRangeException sebagai gantinya. Untuk memberi informasi sebanyak mungkin kepada pemanggil, pertimbangkan untuk menentukan pengecualian asli sebagai InnerException dari pengecualian baru. Karena properti InnerException bersifat baca-saja, Anda harus menetapkannya di konstruktor pengecualian baru.