Objektorienterad programmering

Relevanta dokument
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Objektorienterad programmering

Testning av program. Verklig modell för programutveckling

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad programmering Föreläsning 10. Copyright Mahmud Al Hakim Sorteringsalgoritmer

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Objektorienterad programmering Föreläsning 5

Objektorienterad programmering Föreläsning 11. Copyright Mahmud Al Hakim

JAVAUTVECKLING LEKTION 4

Exceptions (undantag) Murach s: kap 7

Objektorienterad programmering Föreläsning 12. Copyright Mahmud Al Hakim

Agenda. Objektorienterad programmering Föreläsning 13

Klassen javax.swing.timer

Objektorienterad programmering

Agenda (obs! halvdag)

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Objektorienterad programmering

Numeriska Metoder och Grundläggande Programmering för P1, VT2014

Objektorienterad programmering Föreläsning 20

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Felhantering TDDD78, TDDE30, 729A

Föreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag

Föreläsning 3 Innehåll. Generiska klasser. Icke-generisk lista ArrayList, skiss av implementering. Icke-generisk lista Risk för fel

Objektorienterad programmering Föreläsning 15. Grafiska användargränssnitt (GUI Graphical User Interface)

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Objektorienterad programmering D2

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Undantag. Engelska: exceptions. Skansholm: exceptionella händelser

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

Objektorienterad programmering Föreläsning 2

Föreläsnings 9 - Exceptions, I/O

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket

Typkonvertering. Java versus C

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

Objektorienterad programmering Föreläsning 6. Mer om klasser och typer Namnrymder Inkapsling Synlighet Statiska variabler Statiska metoder

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

F4. programmeringsteknik och Matlab

Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor

JAVAUTVECKLING LEKTION 11

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

Databasutveckling Microsoft T-SQL - Fortsättning. Funktioner GROUP BY HAVING Skapa databaser Skapa tabeller Lite om transaktioshantering

Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016

Att skriva till och läsa från terminalfönstret

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

Föreläsning 5: Introduktion av pekare

Laboration 1. Objektorienterad programmering, Z1. Syfte

Föreläsning 4 Programmeringsteknik DD1310. Felhantering. Syntax. try och except är reserverade ord som används för hantering av exekverings fel.

Instuderingsfrågor, del B

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.

JAVAUTVECKLING LEKTION 8

OOP Objekt-orienterad programmering

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

OOP Objekt-orienterad programmering

trafiksimulering Intro OU5 trafiksimulering

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Introduktion till arv

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

for-satsen Fält for-satsen Föreläsning 8 (OH-bilder 7) for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende:

DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Kompilera och exekvera Javakod

Föreläsning 3-4 Innehåll

DAT043 Objektorienterad Programmering

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Kopiering av objekt i Java

Tentamen LÖSNINGSFÖRSLAG. c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt.

Testning och felhantering

Tentamen ID1004 Objektorienterad programmering May 29, 2012

JAVAUTVECKLING LEKTION 7

Felsökning. Översikt. Felsökning (debugging) Kodstandard. Kommentarer. Kommentarer. Praktiska råd

Objektorienterad programmering i Java

JAVAUTVECKLING LEKTION 3

Grundläggande programmering med C# 7,5 högskolepoäng

Objektorienterad programmering

Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag

Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag

PROGRAMMERINGSTEKNIK TIN212

Testning. 1. Inledning

if (n==null) { return null; } else { return new Node(n.data, copy(n.next));

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

Objektorienterad programmering i Java I

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Generiska konstruktioner. Kursbokens kapitel 13

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem).

Introduktion till PHP

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

Föreläsning 6: Metoder och fält (arrays)

Transkript:

Objektorienterad programmering Föreläsning 14 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webacademy.se Agenda Exceptionella händelser Vanliga Programfel Exception-klasser Automatiskt genererade exceptionella händelser Exception-klasser Throw-satsen Try-satsen 1

Vanliga Programfel Programfel kan indelas i tre grupper: 1. Kompileringsfel Fel som uppstår för att man inte har följt språkreglerna. Denna typ av fel upptäcks av kompilatorn (enklast att hitta). 2. Exekveringsfel Fel som uppstår vid körningen! T.ex. vid försök att indexera utanför gränserna i ett fält eller försök att öppna en fil som inte finns. 3. Logiska fel Man har tänkt fel när man har konstruerat programmet och har använt en felaktig algoritm (svårast att hitta). Exceptionella händelser Vid exekvering ett program uppstår ibland situationer som normalt inte skall eller brukar inträffa. Vi kallar en sådan situation för en exceptionell händelse (exception på engelska). I C# finns en mekanism med vars hjälp man kan hantera exceptionella händelser. En metod i vilken ett fel uppstår genererar en exceptionell händelse som sedan skickas vidare till andra metoder, där man kan fånga händelsen och vidta någon lämplig åtgärd. 2

Automatiskt genererade exceptionella händelser Fel som uppstår av normala satser och uttryck kan generera exceptionella händelser automatiskt. Några exempel 1. Man försöker indexera utanför ett fält. 2. Man försöker följa upp en referens som har värdet null. Exekveringsfel Exempel 1 3

Exekveringsfel Exempel 2 OBS! Detta händer om användaren avbryter programmet med kortkommandot CTRL+Z Tips! Sådana fel kan man enkelt undvika genom att lägga till s!= null && alltså så här: if (s!= null && s.toupper().startswith("j")) Exception-klasser När en exceptionell händelse inträffar sparas informationen om händelsen i ett speciellt objekt. Ett sådant objekt tillhör en subklass till standardklassen Exception. Exempel på klasser som används när fel uppstår vid normala satser och uttryck IndexOutOfRangeException Vid indexering utanför ett fälts gränser NullReferenceException När man försöker följa en null-referens DivideByZeroException Vid försök att dividera ett heltal med noll 4

Throw-satsen Exceptionella händelser kan genereras genom att en throw-sats exekveras. En sådan sats brukar ha någon av formerna throw new E(); throw new E(argument); Där E är en klass som direkt eller indirekt är en subklass till standardklassen Exception. Man skapar ett nytt objekt av denna klass direkt i throw-satsen. Throw-satsen Exempel 5

Throw-satsen Exempel fort. En exceptionell händelse visas vid körning, om man försöker skicka ett ogiltigt argument Try-satsen När man anropar en metod som kan generera exeptionella händelser, så kan man speciellt ange att man är beredd att fånga dessa händelser. Detta gör man genom att använda sig a en try-sats. try { satser } catch (E e) { satser } finally { satser } E betecknar namn på exceptionklass. e är godtycklig parameternamn. Man får ha hur många hanterare (catch-satser) som helst. Satser som finns i finally exekveras alltid allra sist (finnaly kan utelämnas) 6

Try-satsen Exempel Här kan vi fånga en ArgumentException e.message visar felmeddelandet! Try-satsen Exempel 2 FormatException fångas om Parse misslyckas ArgumentNullException fångas om argumentet är null 7