jump to navigation

Exception Design (Bagian 09) – Try Parse Pattern 30 Juni 2008

Posted by firstyuyu in Exception Design.
trackback

Untuk API yang sangat mempertimbangkan performa, kita bisa menggunakan Try-Parse pattern. Pattern ini merubah nama member sehingga makna semantik dari member tersebut sekaligus menunjukkan sebuah pengetesan. Misalnya tipe data DateTime mempunyai method Parse yang melontarkan exception jika gagal melakukan parsing terhadap string yang diberikan. Selain itu, tipe data DateTime juga mempunyai method pasangan untuk method Parse, yaitu TryParse, yang akan mencoba melakukan parsing, tetapi mengembalikan nilai false jika gagal dan jika berhasil, akan mengembalikan nilai DateTime hasil parsing melalui parameter output.

public struct DateTime

{

    public static DateTime Parse(string dateTime);

    public static bool TryParse(string dateTime,

        out DateTime result);

}

Namun kita juga harus tetap konsisten dalam mengimplementasikan pattern ini. Jika member yang berawalan “Try” tadi gagal melakukan tugasnya karena alasan lain yang tidak berhubungan dengan makna semantiknya, maka member tersebut tetap harus melontarkan exception.

Pertimbangkan:
untuk menggunakan Try-Parse pattern untuk member yang mungkin melontarkan exception pada skenario utama. Hal ini untuk menghindari masalah performa yang berkaitan dengan exception.

Lakukan:
Gunakan awalan “Try” dan return value bertipe boolean untuk method yang mengimplementasikan pattern ini.

Lakukan:
Selalu implementasikan pattern ini secara berpasangan. Artinya, jika kita mempunyai method TryXxxx yang mengembalikan nilai false jika gagal, maka kita juga harus mempunyai method Xxxx yang akan melontarkan exception jika gagal.

 

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: