BİL132 Bilgisayar Programlama II

Benzer belgeler
BİL-141 Bilgisayar Programlama I (Java)

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

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10

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

İç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

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

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

MOBIL UYGULAMA GELIŞTIRME

// hataları işaret eden referans

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

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.

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

Nesne Yönelimli Programlama

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

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

BufferedReader. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Readable. Altsınıfları: LineNumberReader. Bildirimi: public class BufferedReader

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

Burada, Input ve Output stream ler ile ilgili sınıfların hiyerarşisi gösterilmektedir.


JAVA ile DAĞITIK PROGRAMLAMA

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken:

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

JAVA DA İSTİSNALAR VE DOSYA İŞLEMLERİ. Yrd. Doç.Dr. İlhan AYDIN

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

Java Programlama. İstisnalar, Numaralandırmalar, Otomatik Kutulama ve Açıklama Notları

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

Dağıtık Sistemler CS5001

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

BİL-141 Bilgisayar Programlama I (Java)

YZM 2116 Veri Yapıları

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık İşletim Sistemleri

Alıştırmalar 2 - Dağıtık Sistemler. Alıştırma 2. Prof. Dr. Th. Letschert Çeviri: Turgay Akbaş FB MNI 16. Mai 2013

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

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

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

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

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

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

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

Dağıtık Sistemler CS5001

Business Delegate Tasarım Şablonu KurumsalJava.com

İstisnalar (Exception)

Sunum İçeriği. Programlamaya Giriş

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

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

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

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

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

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

Görsel Programlama (Visual Programming)

Bir c sınıfının doğal sıralaması ile tutarlı olması (be consistent with equals) demek, c sınıfı içindeki her e1 ve e2 nesnesi için

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

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

Arasınav Örnek Soruları Bahar 2018

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance)

11- FONKSİYONLAR (FUNCTIONS)

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

Sınıfların Tekrardan Kullanılması. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1

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

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

VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ

Programlama Dilleri 3

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

Lecture 11: Generics

Java String İşlemleri

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

Class PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util.

BİL-141 Bilgisayar Programlama I (Java)

Ağ Sunucusu Programlaması. Bora Güngören Portakal Teknoloji

Program Hatalarını Çözümleme

BM-209 Nesne Yönelimli Programlama

TEMPLATES. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1

ArrayList ve List yapıları. Bilgisayar Programlama 2 Erciyes Üniversitesi Bahriye Akay

Operator Aşırı Yükleme (Operator OverLoading)

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

Mantıksal İşlemler. 7.1 true, false, nil

Sınav Dağılım & IMKB Endeks

public class SalesLineItem // Java { private int quantity; private ProductSpecification description; public Money getsubtotal() {...

YMT219 VERİ YAPILARI ÖDEV-1

Soru 1: Fahrenheit cinsinden verilen sıcaklığı Kelvin'e çeviren bir program yazınız. Aşağıdaki dönüşüm formülünü kullanabilirsiniz:

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

3.Hafta. . Kontrol Deyimleri/İfadeler

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

RSA ANAHTAR DAĞITIMI VE RSA İLE DİJİTAL İMZA OLUŞTURMA

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

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

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

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

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

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir.

Java da Program Denetimi ve Operatörler

protected Reader() Karekter akımı okumak için Reader nesnesi yaratır. Yaratılan nesne kendi kendisiyle eşzamanlı olur.

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Yigin & Kuyruk {\} /\ Suhap SAHIN Onur GÖK

Transkript:

BİL132 Bilgisayar Programlama II 8. Olağandışı durumlar (exceptions) Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümü Yüksel Tarhan

Olağandışı durum Kütük bulunamadı Diskte yer kalmadı Nesne referans değişken değeri geçersiz (null) Aritmetik işlemde sıfıra bölme Dizi sınırları dışında erişim Donanım hataları Bellek eşlik denetim (parity) hatası... (ve diğerleri) BİL132 Bahar 2006 2

Olağandışı durum Olağandışı durum (nesnesi): veriler, program mantığı veya donanımda sezilen bir hata nedeniyle Java tarafından üretilen nesne. Hata durumunda: Program hemen sonlandırılsın mı? Hangi özel durumlarda? Hata giderilebilir mi? Hangi tür hatalar giderilmeli? Hatayı hangi birim (sınıf / işlev) ve sistem (kullanıcı /JRE) gidermeli? Hata nerede giderilmeli? BİL132 Bahar 2006 3

Olağandışı durumun sezilmesi Hata sezildiği zaman işlev bir hata nesnesi oluşturur. Bu nesne işletim destek birimine (JRE) gönderilir ( throwing exception ). JRE işletim yığını (RTS) üzerinde çağrılı işlevleri (sondan başa doğru) tarayarak hata çözümleyici (kod) arar. Çözümleyici bulunmazsa program sonlandırılır. Hatanın sezildiği işlev... 3. işlev (metod) 2. işlev (metod) 1. işlev (metod) main BİL132 Bahar 2006 4

Olağandışı durum - aşamalar Hatanın sezilmesi: try Hata nesnesinin oluşturulması JRE tarafından (program dışında) throw (program deyimleriyle) Uyumlu hata çözümleyicinin bulunması : catch Hata giderme sırasında yapılacak temizlik işlemleri : finally BİL132 Bahar 2006 5

Olağandışı durum - aşamalar Aynı işlev içinde: try { // Hata üretme olasılığı olan program deyimleri catch (ExceptionType1 e) { // Bu tür hatayı çözümleyen kod catch (ExceptionType2 e) { // Bu tür hatayı çözümleyen kod... // Diğer hata türlerini çözümleyen kod finally { // Blok sonu temizlik kodu BİL132 Bahar 2006 6

Olağandışı durum - aşamalar Hata sezilmezse: try { xxxxxxxxxxxxx catch (ExceptionType1 e) { catch (ExceptionType2 e) {... finally { xxxxxxxxxxxxxx BİL132 Bahar 2006 7

Olağandışı durum - aşamalar Hata sezilirse: try { xxxxxxxxxxxxx (hata sezilir sezilmez) catch (ExceptionType1 e) { (hata bu türde değilse) catch (ExceptionType2 e) { xxxxxxxxxxxxx... finally { xxxxxxxxxxxxxx Hiçbir noktada yakalanmayan hatalarda finally bloku işletilir; hata nesnesi çağıran işleve iletilir BİL132 Bahar 2006 8

Olağandışı durum özel durumlar İşlevin bir yerinde, try blokunda yakalanamayan bir hata, çevreleyen en yakın try bloku içinde (varsa) yeniden aranır. Daha sonra çağıran program içinde (aynı biçimde) aranır. BİL132 Bahar 2006 9

Olağandışı durum nesne türleri Denetlenen hatalar (checked exceptions): İşlevde bu tür hatalar için çözümleyici yoksa, işlev başlığında throws ifadesi yer almalıdır. (IOException, and InterruptedException). Denetlenen hataların programın bir yerinde mutlaka çözümlenmesi gerekir. Denetlenmeyen hatalar (unchecked exceptions): İşlev başlığında throws ifadesi gerekmez. (RunTimeException and Error) BİL132 Bahar 2006 10

Olağandışı durum nesne türleri Object Throwable Unchecked Exception InterruptedException IOException RunTimeException ParseException IndexOutOfBoundsException ArithmeticException NullPointerException ArithmeticException BİL132 Bahar 2006 11

Runtime hata nesneleri - Örnek public class Zero { public static void main(string[] args) { int numerator = 10; int denominator = 0; System.out.println(numerator/denominator); System.out.println( Bu satır yazılmayacaktır. ); Exception in thread main java.lang.arithmeticexception: / by zero at Zero.main(Zero.java:6) BİL132 Bahar 2006 12

Programa özgü olağandışı durum nesneleri - Örnek Olağandışı durum (hata) sınıfı: public class GarageFull extends Exception { private int capacity; public GarageFull(int s){ capacity = s; //end GarageFull public int getcapacity(){ return capacity; //end getcapacity //end class GarageFull BİL132 Bahar 2006 13

Programa özgü olağandışı durum nesneleri - Örnek Normal program deyimleri public class Garage { private Vehicle[] fleet = new Vehicle[100]; private int count = 0; public void addvehicle(vehicle v) throws GarageFull { if (count = fleet.length) throw new GarageFull(count); else fleet[count++] = v; //end add Vehicle BİL132 Bahar 2006 14

Programa özgü olağandışı durum nesneleri - Örnek Hata çözümleyici... try { mygarage.addvehicle(new Car( ABC123,4)); catch(garagefull gf) { System.err.println( Operation failed ); System.err.println( Capacity is + gf.getcapacity()); //end catch... BİL132 Bahar 2006 15

Programa özgü olağandışı durum nesneleri Örnek 2 public String getmessage() { Hata burada çözümleniyor String msg; boolean ok = false; InputStreamReader isr = new InputStreamReader(System.in); BufferedReader in = new BufferedReader(isr); System.out.println( Enter message ); while (!ok){ try { msg = in.readline(); ok = true; //end try catch(ioexception ioe){ System.err.println( Try again ); //end catch //end while return msg; //end GetMessage BİL132 Bahar 2006 16

Programa özgü olağandışı durum nesneleri Örnek 2 public String getmessage() throws IOException { String msg; InputStreamReader isr = new InputStreamReader(System.in); BufferedReader in = new BufferedReader(isr); System.out.println( Enter message ); msg = in.readline(); return msg; //end GetMessage BİL132 Bahar 2006 17

Özel durumlar Türetilmiş sınıf işlevi üst sınıflardaki başka bir işlevin yerine yerine geçmişse (overriding), throws ile, yerine geçtiği işlevin belirttiğinden daha fazla hata belirtemez. Class X { void f() throws ExceptionA {... Class Y extends X { void f() throws ExceptionB {... BİL132 Bahar 2006 18

Özel durumlar throws deyimiyle belirli bir E hata nesnesini türeteceği bilinen bir işlev çağırılıyorsa, çağıran işlev: E nesnesini yakalayarak hatayı çözebilir, veya, E nesnesini yakalayarak, kendi throws listesindeki (başka) bir türden hata nesnesini türetebilir, veya Kendi throws listesine E türünü ekleyerek hata ile ilgilenmemeyi seçebilir. BİL132 Bahar 2006 19

Terimler Exception Handler Throw (exception) Catch (exception) olağandışı durum, hata çözümleyici hata nesnesi türetme (hata nesnesi) tutmak BİL132 Bahar 2006 20