Jumat, 22 Maret 2013

Belajar Exception Handling - Error Handling

“Exception handling atau Error Handling merupakan bagian yang cukup penting dalam pemrograman manapun. Anda harus dapat meng-handle setiap error yang muncul dalam program maupun dalam verifikasi sebuah fungsi. Contohnya error handling itu apa saja sih? Bisa handle saat verifikasi user input, handle saat kita meloading file xml yang tidak ditemukan, handle saat internet connection error dan lain-lain termasuk handle pada saat men-verifikasi return value dari sebuah fungsi/method.



Contoh lainnya adalah input/output error (IO), system memory error, database error dan lain-lain yang memang memerlukan peng-handle-an khusus agar error-error seperti ini tidak menyebabkan program kita ikut error.

Sama seperti pemrograman yang lain, handling exception/error dalam C# bisa digunakan TRY/CATCH. 

Mari kita lihat contoh berikut, saya ambil dari csharp-station.com,

  1. //tryCatchDemo.cs
  2. using System;
  3. using System.IO;
  4.  
  5. class tryCatchDemo
  6. {
  7.     static void Main(string[] args)
  8.     {
  9.         try
  10.         {
  11.             File.OpenRead("NonExistentFile");
  12.         }
  13.         catch(Exception ex)
  14.         {
  15.             Console.WriteLine(ex.ToString());
  16.         }
  17.     }
  18. }


inilah yang dinamakan dengan exception atau error handling. Kode untuk Exception atau Error terdapat pada bagian CATCH. Sedangkan bila program berjalan tanpa error/pengecualian maka kode dalam TRY lah yang akan dieksekusi. 

Sebetulnya banyak sekali ya exception itu, kalo pada contoh kode di atas kita menggunakan IO exception, yaitu input/ouput dalam pembacaan file (File.OpenRead). Contoh yang lain adalah:
•SecurityException
•ArgumentException
•ArgumentNullException
•PathTooLongException
•DirectoryNotFoundException
•UnauthorizedAccessException
•FileNotFoundException
•NotSupportedException


Dan lain lain yang dapat anda temukan dalam .NET Documentation. Jangan khawatir bila anda bingung menemukan documentation ini, karena msdn online menyediakannya untuk anda. Dan saat anda menginstall Visual Studio pun opsi untuk penginstalan documentation juga tersedia.

Pada contoh diatas, kita menggunakan ‘Single Exception’, kita juga dapat menggunakan multiple exception dengan multiple try/catch implementation seperti pada kode yang saya ambil dari csharp-station.com berikut ini:


  1.         catch(FileNotFoundException fnfex)
  2.         {
  3.             Console.WriteLine(fnfex.ToString());
  4.         }
  5.         catch(Exception ex)
  6.         {
  7.             Console.WriteLine(ex.ToString());
  8.         }


Nah, jadi kesimpulannya untuk menghindari error kita dapat menggunakan TRY dan CATCH. Tapi perlu diingat, meski kita telah menggunakan TRY dan CATH, kita JUGA BISA menambahkan kode terakhir pamungkas yang disebut dengan ‘BLOCK FINAL’, perhatikan contoh berikut ini:
  1. //FinallyDemo.cs
  2. using System;
  3. using System.IO;
  4.  
  5. class FinallyDemo
  6. {
  7.     static void Main(string[] args)
  8.     {
  9.         FileStream outStream = null;
  10.         FileStream inStream = null;
  11.  
  12.         try
  13.         {
  14.             outStream = File.OpenWrite("DestinationFile.txt");
  15.             inStream = File.OpenRead("BogusInputFile.txt");
  16.         }
  17.         catch(Exception ex)
  18.         {
  19.             Console.WriteLine(ex.ToString());
  20.         }
  21.         finally
  22.         {
  23.             if (outStream != null)
  24.             {
  25.                 outStream.Close();
  26.                 Console.WriteLine("outStream closed.");
  27.             }
  28.             if (inStream != null)
  29.             {
  30.                 inStream.Close();
  31.                 Console.WriteLine("inStream closed.");
  32.             }
  33.         }
  34.     }
  35. }


Penggunaan try/catch/finally akan membuat eksekusi algoritma kita jauh lebih sempurna.

Untuk berdiskusi atau tanya jawab tentang Tutorial ini, anda dapat bergabung di MeTu+ Expert Discussionhttp://expert.mediatutorial.web.id

 
Sumber : http://www.mediatutorial.web.id/2012/12/exception-handling-error-handling.html 

Tidak ada komentar:

Posting Komentar

Berilah Komentar di Artikal ini sobat !!!!!!!