NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 8. Yrd.Doç.Dr.Hacer Karacan



Benzer belgeler
NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10

BİL132 Bilgisayar Programlama II

BİL-141 Bilgisayar Programlama I (Java)

İstisnalar (Exceptions) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 8 1

// hataları işaret eden referans

Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com

Yrd. Doç. Dr. Caner ÖZCAN

Sunum İçeriği. Programlamaya Giriş

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Yrd. Doç. Dr. Caner ÖZCAN

İstisnalar (Exception)

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Java da İşleçler, Ders #3 (4 Kasım 2009)

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

Java Class Yapısında Finalize Metotunun Kullanımı

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Üst Düzey Programlama

HSancak Nesne Tabanlı Programlama I Ders Notları

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

NESNEYE YÖNELİK PROGRAMLAMA

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir.

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

BİL-141 Bilgisayar Programlama I (Java)

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

HATA YAKALAMAK VE AYIKLAMAK GİRİŞ HATA AYIKLAMA. Hata Yakalamak ve Ayıklamak

Calistir diye normal bir java classı ekleyelim.aynı pakete ekleyelim.public ve main metodu ekleyelim.

BİLGİSAYAR PROGRAMLARININ TASARIMLARINDAKİ VE KODLARINDAKİ SORUNLARIN BELİRLENMESİ ALPER FİLİZ MEHMET ALİ SERT

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

Lecture 11: Generics

Üst Düzey Programlama

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

Nesne Yönelimli Programlama

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Java String İşlemleri

JAVADA DİZİ İŞLEMLERİ

Programlama Dillerinde Kullanılan Veri Tipleri

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Nesne Yönelimli Programlama

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

Üst Düzey Programlama

Python Programlama Dili

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

DÖNGÜLER BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA DENEY-4 FÖYÜ GİRİŞ LABORATUARI.

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

Göstericiler (Pointers)

ALGORİTMA VE PROGRAMLAMA I

HSancak Nesne Tabanlı Programlama I Ders Notları

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.


/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Java da Program Denetimi ve Operatörler

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

Hata Ayıklamanın Ötesi... (Assertion) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 14 1

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 4. UYGULAMA

public static int Toplam int x, int y

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

Yrd. Doç. Dr. Caner ÖZCAN

5. Bölüm Sıra Dışı Durum Yönetimi (Exception Handling) Java ile Nesne Merkezli ve Fonksiyonel Programlama

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

ALGORİTMA VE PROGRAMLAMA I

Pointer Kavramı. Veri Yapıları

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

İş Parçacıkları Thread(s)

ALGORİTMA VE PROGRAMLAMA I

Bilgisayarda Programlama. Temel Kavramlar

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Doç. Dr. Aybars UĞUR

Transkript:

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 8 Yrd.Doç.Dr.Hacer Karacan

İçerik İstisna Yönetimi (Exception Handling) İstisna Nedir? İstisna Yakalama Mekanizması İstisna İşleme Modeli İstisnaların Listesi İstisna Fırlatma İstisna Oluşturma

Kod derlenebilir Kod hatasızdır Derleme sadece sözdizimi kontrolü yapar Kod hatasız Program hatasız çalışacak Program çalışması kontrol dışıdır Hata hata Hatalara gerektiği gibi davranmak gerekir Tüm bunlar kontrollü olmalıdır Programcılara bırakılmamalıdır

İstisna (exception) Nedir? İstisna, bir kod dizisinde, çalışma sırasında ortaya çıkan, anormal bir durumdur. İstisna, hatalı olsun veya olmasın, donanım veya yazılım tarafından tespit edilebilir, olağan olmayan herhangi bir olaydır ve özel bir işlem gerektirir Bir çalışma zamanı (run-time) hatasıdır. İstisnalar, programcılara, hatalar karşısında istenildiği şekilde davranabilme ve oluşacak hataları kontrol altına alabilme yeteneği ve esnekliği sağlar. En önemli kazanım ise hata kontrolü ile algoritmanın birbirinden ayrılmasıdır.

Bir sistemi tamamen istisnalara karşı korunaklı tasarlamak ve oluşturmak çok zordur. Çıkabilecek sorunların önceden tamamıyla düşünülmesi mümkün değildir. Sorunlar ciddi farklılıklar gösterebilir. Veri tutarsızlığı Operatör hatası Bellek hatası Yanlış girdi Donanımsal tutarsızlık Sistemlerin tamamen çökmesinin veya güvenlik problemleriyle karşılaşmalarının %80 oranında istisnalardan kaynaklandığı bilinmektedir.

Hata (Error) vs. İstisna (Exception) Error, sistem bütünlüğünde, programcının kontrolü dışında gerçekleşen hatalardır. bellek yetersizliği, İnternet bağlantısının kurulamaması, disk problemleri, İstisna ise çalışma zamanında meydana gelen, beklenmeyen durumlar olarak tanımlanır. İstisnalar, genel olarak kod yazılması sırasında programcı tarafından yapılabilecek hatalardır. Bu tanım, bütün istisnai durumların programcının yanlış söz dizileri kullanmasından kaynaklandığı anlamına gelmemelidir. Doğrudan programcıyı ilgilendiren durumlardan bahsedilmektedir. Yazılan programın beklediği girdiler, sunduğu çıktılar,

İstisna yöneticisi (exception handler) İstisnanın tespitinden sonra gerekli olan özel işleme İstisna Yönetimi (exception handling) denir İstisna yönetimi kodu istisna yöneticisi (exception handler) olarak adlandırılır İstisna yöneticileri farklı istisnalar için farklı biçimlerde davranırlar. Örneğin, bir dosya sonu kontrolündeki program gereksinimlerinin sıfıra bölme işlemiyle karşılaşıldığında aynı davranışı göstermesi beklenemez. Kullanılan dilin istisna işlemini desteklemesi bu tip sorunları çok daha hızlı ve programın güvenilirliğine zarar vermeden çözebilme yeteneğini sunmaktadır.

İstisna yöneticisi (exception handler) Yazmakta olduğumuz bir programda yüzden fazla yerde dosya sonu problemi ve bir o kadar da sıfıra bölme problemi olduğunu düşünelim. Yapısal dillerde tüm bu problemler algoritma içerisine gömülü olarak yazılan kod parçalarıyla kontrol altına alınmalıdır. Bu da iki yüz defa aynı kontrolün yazılması anlamına gelebilir. Oysa istisna işleme sayesinde programın bu tip hatalarla karşılaştığında davranışının ne olacağı sadece bir istisna işleyici ile belirlenmektedir. Bu istisna işleyici birden çok program birimi tarafından kullanılabilir; bu sayede kodun hantallaşması önlendiği gibi güvenilirlik azami şekilde sağlıklı kılınmaktadır.

Bir Java istisnası, kod parçasının çalışma zamanında meydana gelen istisnai bir durumu tarif eden nesnedir. Ana mantık şu şekildedir: İstisnai bir durum ortaya çıktığında, o istisnayı temsil eden bir nesne yaratılır ve hataya sebep olan metodun içine fırlatılır (throw). Programcının olaya nasıl bakması gerektiğiyle ilgili olarak bu metot istisnayı ya yakalar (catch) ve işler ya da yakalanıp işlenmesi için istisnaya dokunmaz ve geçer. Java da istisna işleme konusunda beş anahtar sözcük karşımıza çıkmaktadır: try catch throw throws finally

Java da istisna yönetim bloğu aşağıdaki şekildedir: try { code(); catch (exception 1) { NecessaryErrorProcess1();... catch (exception N) { NecessaryErrorProcessN(); finally { Finally();

İstisnalar için izlenen kod, bir try bloğu içerisinde tutulur. Bu bloğun anlamı bu kodu çalıştır ve istisna oluşacak mı gör Eğer try bloğu içerisinde bir istisna meydana gelirse, bir istisna nesnesi yaratılır ve kod içerisine atılır. Program bu istisnayı catch ifadesi ile yakalayabilir ve işleyebilir. Her catch bloğu ne tipte bir istisnayı yakalayabileceğini belirler ve içerisinde o tipte istisnayı işlemek üzere bir istisna işleyici bulunur. Eğer programcı bir istisnayı bizzat atmak istiyorsa throw ifadesini kullanır. Bir metottan atılan her istisna bir throws kalıbı ile belirtilir. finally ile belirtilen bloğun içindeki kod, istisna oluşsun veya oluşmasın kesinlikle çalışması gereken koddur. Bazı kodların her ne olursa olsun çalışması gerekiyorsa finally bloğunun içinde yer almalıdır.

Terminoloji: Çalışma zamanında beklenmeyen bir problem oluşması durumu exception Bir istisnanın yaratılıp program içerisine atılması throwing Oluşan bir istisnayı yakalayıp problemin çözülmesi adına belirtilen ifadeleri çalıştırma işlemi catching İstisna ile uğraşan kod bloğu catch clause (catch block) İstisnanın oluştuğu noktada kontrol sağlayan bir dizi metot çağırma işlemi stack trace

İstisna türleri

Tüm istisnalar, yerleşik Throwable sınıfının soyundan olan sınıfların nesneleridir. Throwable ın hemen altında, istisnaları iki ayrı dala ayıran, iki altsınıf vardır: 1. Exception Kullanıcı programlarının yakalaması gereken istisnai durumlar için kullanılır. Öntanımlı iki altsınıfı vardır, IOException RuntimeException (örn., ArrayIndexOutOfBoundsException ve NullPointerException) 2. Error Normal şartlar altında program tarafından yakalanmayacak istisnaları tanımlayan sınıftır. Error tipindeki istisnalar, Java run-time ortamının kendisi ile ilgili hatalarını göstermek için Java run-time sistemi tarafından kullanılır.

1-15 İstisna Türleri Java runtime sytem Error Throwable Exception Programcı açısından önemli olan istisnalar IOException Runtime Exception I/O error, Programcı hatası: indis hatası; null pointer;

Tüm istisnaların kalıtımlandığı Throwable sınıfı, oluşan istisna hakkında bilgi döndürmek için kullanılan, iki tane metot içerir: getmessage() istisna hakkında text olarak bir bilgi döndürür. printstacktrace() bu istisnaya kadar ki çağırma yığınlarını - hangi metotlar çağrılmıştır bilgisini - döndürür.

try ve catch Bir run-time hatasına karşın önlem almak ve bu hatayı işlemek için, izlenmesi istenilen kod try bloğu içerisine alınır. try bloğunun hemen arkasından, yakalamak istenilen istisna tipini belirten, bir catch kalıbı konulur. try ve catch beraber bir birim oluştururlar.

try ve catch İstisnanın işleme kodu catch bloğu içerisine yazılır. bir catch kalıbı, içice yuvalanmış try blokları hariç, başka bir try bloğunun attığı istisnayı yakalayamaz. İyi yapılandırılmış catch bloklarının amacı, istisnai durumları çözmek ve hata olmamış gibi programın akışını devam etmesini sağlamaktır. Bir istisna atıldığı zaman, program kontrolü try bloğundan catch bloğuna geçer. Herhangi bir metodun çağrılması gibi catch bloğunun çağrılması söz konusu değildir. Çalışma hiçbir zaman catch bloğundan try bloğuna dönmez. catch bloğu çalıştıktan sonra, program, try/catch kalıbının hemen ardından gelen kod parçalarıyla devam eder.

Örnek import javax.swing.joptionpane; class OrnekIstisnaUygulamasi{ public static void main(string args[]) { int a,b; try{ a=integer.parseint (JOptionPane.showInputDialog ( lütfen integer bir sayı giriniz )); b=100/a; System.out.println( istisna sonrasi mesaj ); catch (ArithmeticException e){ System.out.println( a= +a+ oldugu icin bolme islemini gerceklestiremiyoruz! ); System.out.println( yönetim sonrasi mesaj ); girdi kutusuna 0 değeri girilince program çıktısı: a=0 oldugu icin bolme islemini gerceklestiremiyoruz yönetim sonrasi mesaj 2 değeri girilince program çıktısı: istisna sonrasi mesaj yönetim sonrasi mesaj

throw ve throws Program sadece Java run-time sistemi tarafından yaratılan istisnaları yakalamak zorunda değildir. throw deyimi kullanılarak istisnayı programcının atması da mümkündür. Atılacak istisna Throwable sınıfının veya bu sınıfın altsınıflarının bir nesnesi olmak zorundadır. Eğer bir metot, işleyemediği bir istisnaya neden oluyorsa, bu durumu mutlaka kendini çağıran diğer programlara bildirmelidir. Bu, metodun içerisine bir throws kalıbı sokularak yapılabilir. throws kalıbı bir metodun fırlatabileceği istisnaları listeler. Bu listenin dışında bir istisna ortaya çıkacak olursa çalışma zamanı hatasına yol açar.

Örnek - throw class OrnekIstisnaThrowUygulamasi{ public static void main(string args[]) { try{ throw new ArithmeticException( 0 a bolme ); catch (ArithmeticException e){ System.out.println( istisnai durum= +e); System.out.println( throw islemi sonrasi mesaj ); program çıktısı: istisnai durum= java.lang.arithmeticexception: 0 a bolme throw islemi sonrasi mesaj

Örnek - throws public class ThrowsDeneme { static void firlatmaornegi() throws ArithmeticException{ System.out.println( firlatilan istisna: "); throw new ArithmeticException("deneme"); public static void main(string args[]){ try{ firlatmaornegi(); catch(arithmeticexception e){ System.out.println("burada yakalandi => "+e); program çıktısı: firlatilan istisna: burada yakalandi => java.lang.artihmeticexception: deneme

istisna cokcalis() metodunun içerisinde oluşuyor. Oluşan istisna catch mekanizması sayesinde yakalandıktan sonra bir üst sınıfa fırlatılıyor. calis() metodunun içerisinde de aynı şekilde fırlatılan istisna, catch mekanizmasıyla yakalanıp tekrar bir üst kısıma fırlatılıyor. basla() metoduna kadar gelen istisna nesnesi burada yakalanıp içerisinde saklı bulunan bilgiler printstacktrace() metoduyla ortaya çıkartılıyor.

Uygulamanın çıktısı: İstisna basla() metodunda işlenmesine karşın nerede oluştuğu bilgisi korunmaktadır.

finally finally bloğu içerisindeki kod mutlaka çalışması gereken koddur. Neden böyle bir şeye gerek duyulur? istisna oluşması programın akışına yön değiştirten bir durumdur. Bazı metotların işlemesi mutlak gerekli ise bu durum ciddi problemler yaratabilir. Bu tip problemlerin oluşmaması için finally bloğu kullanılır. Örneğin açık kalmış dosyaların kapatılması gibi işlemler genelde finally bloğu içerisine yazılarak olası problemler engellenmiş olur.

Örnek - finally public class FinallyDeneme { static void finalornegi() throws ArithmeticException{ System.out.print( firlatilan istisna: "); throw new ArithmeticException("deneme"); public static void main(string args[]){ try{ finalornegi(); finally{ System.out.println( finally mutlaka calisir! ); try ifadesi içerisinde çağrılan metod bir istisna fırlatıyor ve bunu yakalayacak tanımlı bir catch ifadesi olmadığı için istisna yönetimi Java nın run-time istisna yöneticisine düşüyor. try içerisinden sapma oluşmasına rağmen finally bloğu çalıştırılıp program öyle kesiliyor. program çıktısı: firlatilan istisna: finally mutlaka çalışır! Exception in thread main java.lang.arithmeticexception: deneme

İstisna Oluşturma İstisna oluşumuna en basit örnek olarak, yanlış kullanılmış dizi uygulamasını verebiliriz. Java programlama dilinde dizilere erişim her zaman kontrollüdür. Java programlama dilinde dizilerin içerisine bir eleman atmak istiyorsak veya var olan bir elemana ulaşmak istiyorsak, bu işlemlerin hepsi Java tarafından önce bir kontrolden geçirilir. Amaç, güvenli bir dizi erişim mekanizmasına sahip olmaktır.

İstisna Oluşturma sayi[], ilkel (primitive) int tipinde dizi değişkenidir ve bağlı bulunduğu dizi nesnesinin içerisinde 2 adet int tipinde eleman vardır. for döngüsü sayesinde dizi içerisindeki elemanlar ekrana basılmaktadır. Örnekteki hata, for döngüsünün fazla dönmesiyle dizinin olmayan elemanına ulaşmak istememizden kaynaklanmaktadır. Böyle bir hareket, çalışma-anında (run-time) hata oluşmasına sebebiyet verip uygulamayı aniden sonlandıracaktır. Ekran çıktısı: Buradaki istisna, ArrayIndexOutOfBoundsException istisnasıdır. Bu istisnanın sebebi, bir dizinin olmayan elemanına erişmeye çalışmamızdır.

İstisna Oluşma Sebepleri Açmak istediğiniz fiziksel dosya yerinde olmayabilir. Uygulamanıza kullanıcılar tarafında, beklenmedik bir girdi kümesi gelebilir. Ağ bağlantısı kopmuş olabilir. Yazmak istediğiniz dosya, başkası tarafından açılmış olduğundan yazma hakkınız olmayabilir.

Hata Yönetimi vs. İstisna Yönetimi Hatalara karşı programcıya düşen temel görev programının bu hatalardan dolayı tamamen çökmesini engellemektir. Programcı oluşan bu hataları program içerisinde çözmeye kalkışmamalıdır. Aslında Error sınıfından oluşan nesnelerin esas olarak yaptıkları şey programın akışını durdurup, sorunu belirtmek ve programdan çıkmaktır. Programcının bu hataları işlemesine gerek kalmadan sistem zaten bu hataları ele almaktadır. Programcının asıl yapması gereken iş çeşitli istisnaları sorun olmaktan çıkarmaya uğraşmaktır. Çalışma zamanı istisnaları genel olarak kod yazılımının yol açtığı hatalardır. Bu yüzden, programcı kendi hatalarını ele almasını sağlayacak istisna işleme teknikleri yaratmalıdır.

Özet* İstisna yönetimi olmayan bir dilde İstisna oluştuğunda kontrol işletim sistemine geçer, bir mesaj ortaya çıkar ve program sonlanır İstisna yönetimi olan bir dilde Programların bazı istisnaları tuzaklamalarına olanak verilir. Böylece problemin onarılması ve devam edilmesi olasılığı sağlar İstisna yönetiminin faydaları: Hatayı düzeltmeye izin vermek Programın otomatik olarak durmasına engel olmak * Kaynak: Üçer,G. & Kırcalı, Ö.F. (2002). İstisna İşleme, ileri programlama dilleri sunum raporu.