Verdieping Programmeren in Java - deel 1 college 6 mei 2001.

Slides:



Advertisements
Verwante presentaties
gebouw applicaties binnen een gebouwbesturingssysteem
Advertisements

Objecten en Volgordediagrammen
Inleiding programmeren in C++ Life Science & Technology 19 januari Universiteit Leiden.
GESPRG Les 14 Gestructureerd programmeren in C. 174 Details! The devil is in the details.
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
Klassen en objecten.
De implementatie van de UIML standaard in UIML.NET Ingo Berben Eindwerk voorgedragen tot het behalen van de graad van bachelor in de informatica/ICT/kennistechnologie.
Instructie Programmeren Debuggen 5JJ70. Debuggen: Wat is het probleem Je programma compileert, maar werkt niet zoals verwacht, wat nu? Vraag je af: wat.
Deel I Hoofdstuk 5: Modelleren van toestand -- gevorderd
Hoofdstuk 6: Controle structuren
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 10: Omgaan met problemen.
GWT-RPC Bram Vandeputte. Wat is GWT-RPC Raamwerk voor envoudige client-server uitwisseling van Java Objecten. Gebaseerd op de Java Servlet architectuur.
PLDA – Connectiviteit Rudolf de Schipper Geoffroy Fauveaux 09/11/2004.
De koektrommel of de grabbelton
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
LED’s.
Exceptions Hoofdstuk 17 Hoofdstuk 17.
SWI cursus: ‘Inleiding programmeren in Java’
1 Inleiding Programmeren in Java Ma 29 januari 2001.
JAVA -- H81 Exception: ongewone of foutieve situatie->prog. mislukt kan onderschept en afgehandeld worden. = een object van de klasse Throwable, gegenereerd.
CONTROLESTRUCTUREN (DEEL 1)
6.1 Inleiding HOOFDSTUK 6 METHODEN
C/S varianten s /CSpaginas/
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Event Handling in Embedded Systems.  Wat is een event?  Welke events zijn het meest “time-critical”?  Welke toestand wordt door de CPU opgeslagen?
SURFnet Relatiedagen, Noordwijkerhout, 30 mei 2006 Altijd en overal online iPass Klaas Wierenga
Opgave 2a nMet een InputStream lees je bytes uit een binare file nMet een Reader lees je characters uit een tekstfile.
Contracten voor Sandboxing gebaseerd op Stack Inspection Jan Smans, Bart Jacobs en Frank Piessens.
Object georiënteerd programmeren in Alice
OO Analyse in de praktijk OO Analyse in de praktijk V Enkele Design Patterns.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
Internetapplicaties - VII Error Handling 1 Internetapplicaties Deel 7: Error Handling.
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 15: Herhaling Java-programmatie en geautomatiseerd testen.
Visual Basic.NET voor studenten De VB- ontwikkelomgeving Hoofdstuk 2.
Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 6: uitzonderingen en de behandeling van uitzonderingen.
Programmeerstijl Hoofdstuk 21. Visual Basic.NET voor studenten2 Inleiding Belang van een goede programmeerstijl:  Programma’s worden door meerdere mensen.
Les 2: Interactie in je space door middel van klikbare objecten en actionscript. Wat is actionscript en programmeren?
Inleiding tot programmeren
Multi-agent manufacturing control in Java.. Overzicht Wat was de bedoeling tot nu toe? Wat hebben we daarvan gerealiseerd? Wat willen we gaan doen?
Visual Basic.NETPag.1 Hoofdstuk 8 – Fout afhandeling Inleiding Structured Exception Handling Hoe fouten opvangen Geen foutafhandeling Alle fouten opvangen.
Datacommunicatie en netwerken
CONTROLESTRUCTUREN (DEEL 1)
tircms02-p les 1 Operating Systems practicum
1 Introductie next MCT - Programmeren 2 © S. Walcarius Waarom java? programma machinetaal (.exe) compilen platformspecifiek Een exe programma.
Encapsulatie: Every man is an island upon himself.
Tircms03-p les 1 C++ voor C-kenners Voor Technische Informatica.
Polymorphisme en Interfaces: inleiding
Programmeren.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Docentinstructie: Het is aan te bevelen de eerste dia’s klassikaal te tonen en met uitleg te bespreken. Als na zes dia’s een korte demo van Celsius/Fahrenheit.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.
INFITT01 - Internettechnologie WEEK 3. Programma Sessies JSP.
Java & het Web Programma: Contexts Listeners Scope/Attributes Thread safety.
Java & het Web Programma: JSP. JSP....herhaling Welke van de volgende expressions is geldig/ongeldig? %>
Het huidige model Obs ’t Hunnighouwersgat. Schooltijden groep 1 tot en met 4 Maandag, Dinsdag, Donderdag:08.25 – 11.45Pauze van tot met pauzehapje.
Loops en errors Array's Random try catch for loop while loop do while loop.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
Programmeren. Wat is programmeren? Het schrijven van opdrachten voor de processor De processor “spreekt” machinetaal:
Observeren Les 3.
Programmeren.
ISensorEventListener
Objectgeoriënteerd Programmeren
Object georiënteerd programmeren
vandaag èn vrijdag deadline maandag 12 dec.
Gameprogrammeren: Afsluiting
Gameprogrammeren: Exceptions
SCALABLE DATA PROCESSING MET RABBITMQ
Software Development fundamentals
Transcript van de presentatie:

Verdieping Programmeren in Java - deel 1 college 6 mei 2001

programma 6 mei s 1e uur: hoofdstuk 14 Exception Handling s 2e uur: hoofdstuk 15: Multithreading

Hoofdstuk 14 Exception Handling s wat is het? –mechanisme in Java om ‘fouten’ op te vangen s welke fouten? –synchrone fouten buiten de actuele scope in run-time s hoe werkt het? –speciale sleutelwoorden: try - catch - throw

Conventioneel vs EH s conventionele foutenopvang: –voordeel: integrale code blijft leesbaar bij weinig fouten –nadeel: code ‘vervuiling’ wanneer vele fouten opgevangen moeten worden s exception handling: –voordeel: integrale code blijft leesbaar bij veel fouten –nadeel: apart mechanisme nodig

Wat is het? s een speciale programmastruktuur voor signaleren (throw) en afhandelen (catch) van fouten –afhandelen: vgl. switch statement, s plus het delegeren van de foutenafhandeling –delegatie aan: exception handler –vergelijkbaar met event handling

Wat is het? s gebaseerd op werk van Koening & Stroustrup voor C++ s exceptions in Java zijn objecten s klassenhiërarchie met als topklasse: Throwable

Throwable subklassen s Error –bv. ivm links, threads, VM –meestal onherstelbaar, worden niet expliciet opgevangen, s RunTimeException –komen in goed programma niet voor s andere klassen: checked exceptions –catch or declare principe

checked versus unchecked s checked: compiler controleert s unchecked: mag je zelf controleren s Campione et al.: controversy s Client - Server voorbeeld

Deitel: welke fouten? s NIET: asynchrone fouten: –dat zijn storingen van buiten het werkende programma –bv. schijf I/O, netwerkboodschappen, muisevents, toetsenbord, etc. –deze anders oplossen, bv met event luisteraars

Deitel: welke fouten? s NIET: synchrone fouten binnen de scope van programmaverwerking –deze conventioneel oplossen in de kode s WEL: synchrone fouten van buiten de scope van verwerking –Software Engineering Observation 14.1 (p.700)

Voorbeeld fig (p. 813) s de scope hier is de berekening van de deling van twee ingevoerde getallen –binnen de scope: deling met alle ingevoerde getallen, ook buiten de gevraagde range (speciale tekens?, letters?) –buiten de scope: niet kunnen uitvoeren van de deling door de methode

Impliciet opvangen s kleiner voorbeeld Mughal & Rasmussen s opklimmende varianten van opwerpen en afhandelen s voorbeeld 1: default exception handling s ‘upward percolating’ in de call-stack tot aan de JVM is te zien aan de ‘stack- trace’

Expliciet opvangen s ‘try block’ : plaats waar de fout kan optreden s ‘catch block’ : plaats van opvang van mogelijk opgetreden fouten s ‘exception’ : fouten moeten vooraf gedefinieerd zijn of worden in een klasse

try - catch s meerdere catch blokken mogelijk s compiler kijkt naar de volgorde s ‘shadowing’ is niet toegestaan

Hoe werkt het? (2) s eventueel afwerken met een ‘finally’ blok, dat altijd wordt uitgevoerd s veel exceptions zijn reeds gedefinieerd in diverse pakketten (zie p. 650 ev.) s klassen van exceptions kun je ook zelf definiëren s EH levert géén ge-optimaliseerde kode

Eigen exception klasse s subklasse van Exception s instantie van klasse wordt exception object s delegatie kan leiden tot communicatie- probleem, vgl oplossing event handling s evt. informatie meegeven aan dit object s eenvoudig voorbeeld

Niet opgevangen fouten s zijn er na finally nog exceptions over? s dan breekt de methode af (abort) s en vangt de default exception handler ze op

Zelf exceptions opwerpen s wanneer: –bij eigen excepties –situaties waarin het systeem niet voorziet s sleutelwoord: ‘throw’ –opgeworpen object moet ‘throwable’ zijn –meestal anoniem object s exceptionslijstje methode: ‘throws’

Throws clausule s checked exceptions: catch or declare principe: –catch: try-catch-finally –declare: throws in methode header s compiler dwingt keuze af s voorbeeld 6

Re-throw s par 14.9: rethrowing an exception s met ‘throw’ doorgeven in plaats van afhandelen s catch blok geeft exception door naar ‘next enclosing try block’ s wanneer zinvol ?

Hoe werkt het? (3) s Java: ‘determination model’ i.t.t. ‘resumption model’ of exception handling (p.809) s ook in programma-lus ? s EH nodig in programma-lus?

volgende week s tentamen