jump to navigation

Exception Design (Bagian 07) – Membuat Custom Exception 16 Juni 2008

Posted by firstyuyu in Exception Design.
trackback

Pada beberapa kasus, kita mungkin tidak bisa menggunakan built-in exception yang telah terdapat di dalam .net framework karena tidak dapat mewakili jenis kesalahan yang terjadi. Pada kasus seperti ini, kita sebaiknya membuat custom exception (kelas turunan Exception yang kita buat sendiri). Berikut ini panduan yang bisa kita gunakan ketika kita ingin membuat custom exception:

Hindari:
hierarki exception yang terlalu dalam.

Lakukan:
Jadikan custom exception yang kita buat merupakan turunan dari kelas System.Exception atau turunan dari kelas induk exception lain yang bersifat umum.

Lakukan:
Namakan kelas custom exception kita dengan akhiran “Exception”.

Lakukan:
Jadikan custom exception yang kita buat bersifat serializable. Sebuah exception harus bersifat serializable agar bisa ditransfer antar AppDomain atau digunakan dalam remoting.

Lakukan:
Sediakan (minimal) konstruktor-konstruktor berikut ini ketika membuat custom exception. Pastikan nama parameter serta tipe datanya sama persis dengan contoh berikut:

public class SomeException : Exception, ISerializable

{

    public SomeException();

    public SomeException(string message);

    public SomeException(string message,

                         Exception innerException);

 

    // Konstruktor ini digunakan untuk serialization

    protected SomeException(SerializationInfo info,

                            StreamingContext contex);

}

Lakukan:
Sertakan informasi yang sensitif dalam pesan exception hanya jika kode yang sedang dieksekusi berhasil meminta permission dari sistem. Jika permintaan permission gagal, maka jangan sertakan informasi yang sensitif tersebut di dalam exception.

Lakukan:
Simpan informasi yang sensitif dalam private field sebuah exception. Pastikan bahwa hanya trusted code yang bisa mengakses informasi ini.

Pertimbangkan:
untuk menyediakan property untuk mengakses data-data lain yang berkaitan dengan exception yang terjadi.

Iklan

Komentar»

No comments yet — be the first.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: