Program derlenirken yada çalışırken oluşan hataları, istisnaları yönetme işlemine exception handling denilmektedir. Programda hataları yakalamak ve işlemek için try catch blogu kullanılır. Programın çalışması için gerekli kodları try blogu içine yazarız. Hataları yakalamak işini catch bölümünde yaparız. Bir try catch blogunda duruma göre spesifik hataları yakalamak için birden fazla catch blogu kullanabilirsiniz. try catch bloguna ek olarak kullanabileceğiniz birde finally blogu vardır. finally kullanmak zorunda değilsiniz ama bazen her durumda çalışması gereken kodlar olacaktır. Örneğin sqle bağlanıp birşeyler yapıyorsanız vs olası bir hata durumunda sql connection kapatmanız güvenlik açısından doğru olacaktır. Bu durumda sql connection kapatma işi finally kod blogunda yapılır. throw ise oluşan hataları kendi oluşturduğumuz custom exception ile yakalamak istediğimizde hata fırlatmak için kullanılır.
try catch blogu kullanımı
- a-)CheckedException (Compiletime Exception)
- SQLException
- IOException
- Dosya ile ilgili işlem yapılırken oluşan hatalardır. Dosya bulunamadığında, dosya okuma yapacakken dosyayı açamadığında bu hata oluşur.
- TargetInvocationException
- Reflection yoluyla çağrılan metodlar tarafından fırlatılan hatalardır.
- b-)UncheckedException (Runtime Exception)
- NullReferenceException
- Erişilmek istenen değişkenin veya nesnenin özelliği null ise bu hata oluşur.
- IndexOutOfRangeException
- Erişilmek istenen index dizi boyutunun dışında ise bu hata oluşur.
yerine
- Erişilmek istenen index dizi boyutunun dışında ise bu hata oluşur.
- ArgumentException
- Bir metod bilinmeyen argümanlarla çağrıldığında bu hata oluşur.
- DivideByZeroException
- Bir sayının 0’a bölünmesi durumunda oluşur.
static void Main(string[] args) { int num1 = 5; int num2 = 0; int result = num1 / num2; }
yerine
static void Main(string[] args) { try { int num1 = 5; int num2 = 0; int result = num1 / num2; } catch (DivideByZeroException ex) { throw ex; } }
- Bir sayının 0’a bölünmesi durumunda oluşur.
- NullReferenceException