1 / 14

Kapittel 10

Kapittel 10. Exceptions. 10.1 Handtering av exceptions. Ein exception er eit objekt som representerer ein feil eller eit unntak Exceptions blir kasta av program eller runtime-miljøet, og kan bli fanga opp og behandla om vi ønskjer det Mange situasjonar kan føre til at exceptions blir kasta

miriam
Download Presentation

Kapittel 10

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kapittel 10 Exceptions

  2. 10.1 Handtering av exceptions • Ein exception er eit objekt som representerer ein feil eller eit unntak • Exceptions blir kasta av program eller runtime-miljøet, og kan bli fanga opp og behandla om vi ønskjer det • Mange situasjonar kan føre til at exceptions blir kasta • Forsøk på å dele på 0 • Arrayindeks utanfor grensene • Fil som ikkje finst • Forsøk på bruk av nullreferanse • etc

  3. Handtering av exceptions • Ein exception kan representere ein situasjon der programmet bør avslutte, eller der vi kan fortsette etter f eks å ha skrive ut ei melding • Tre måtar å behandle exceptions på • Ingen behandling • Behandle der feilen oppstår • Behandle ein annan stad i programmet

  4. 10.2 Ubehandla exceptions • Om programmet ikkje fangar opp og behandlar feilen, vil det avslutte unormalt • Vi vil få ut ei melding om • Kva type feil oppsto, årsak • Kvar oppsto feilen, call stack trace • Metode, fil, linjenummer • Metoder som blei kalt for å komme til der feilen oppsto • Nyttig informasjon som vi ofte kan bruke til å finne feil i koden

  5. 10.3 try-catch • Programsetning for å fange opp og behandle exceptions • try – blokk for “kritsk” kode • Ei catch – setning for kvar exception • Eventuelt finally – setning til slutt • Dersom exception blir kasta når try – blokka blir utført • Kontroll blir flytta til catch – setninga for den aktuelle exception • Koden der blir kjørt

  6. try-catch • Det som står i try – blokka etter at feilen oppsto blir ikkje utført • Dersom rett type exception ikkje blir fanga opp i ei catch – setning, vil programmet terminere • Dersom ingen exception blir kasta, blir ingen av catch – setningane utført • Ei eventuell finally – setning blir alltid utført • finally er forsåvidt overflødig, og kan like gjerne sløyfast. • Blir brukt for kode som logisk sett høyrer saman med det som står i try - blokka

  7. 10.4 Forplanting av exceptions • Viss ein exception ikkje blir fanga opp og behandla der han oppstår, vil programkontrollen bli overført til metoden som kalla metoden der feilen oppsto • Om ikkje denne metoden heller fangar og behandlar exception’en, blir kontroll overført vidare • Til slutt er kontrollen i main() • Programmet terminerer om ikkje main() fangar og behandlar exception • Vi kallar dette forplanting eller propagering • Vi bestemmer på kva nivå vi eventuelt vil fange og behandle exceptions • Designspørsmål

  8. 10.5 Klassehierarki • Throwable er superklasse for både Error og Exception • Exception har mange subklasser som definerer ulike typer exceptions • Vi kan skrive våre eigne klasser for spesielle exceptions ved å arve Exception eller subklasser av Exception • throw • Startar exception - propagering

  9. Klassehierarki • throws • Lagt til i metode – header for å vise at metoden vil kaste eller propagere ein spesiell exception om denne oppstår • Checked og unchecked exceptions • Checked krev throws, unchecked gjer ikkje • Alle exceptions i Java er checked, unntatt RunTimeException med subklasser, som ArithmeticException og NullPointerException

  10. 10.6 I/O Exceptions • Input og output kan lett føre til uforutsette situasjoner der exceptions blir kasta • Typisk situasjon: vi prøver å opne ei ikkje – eksisterande fil for innlesing • Stream – omgrepet • Informasjonsstraum (elv?) • Kilde – sluk • Standard I/O streams: System.in, System.out og System.err • Dette er objektreferanser som er både public og static

  11. I/O Exceptions • java.io – pakken har klasser for å definere streams med ulike eigenskaper • TestData – eksemplet • Mykje av det I/O – klassene utfører kan føre til exceptions av klassen IOException eller subklasser av denne • IOException er ein checked exception • Alle metoder som utfører I/O må difor • Ha throws IOException i headeren Eller • Fange exceptions med try - catch

  12. 10.7 – 10.9 Grafikk • Tool tips • Kort tekst med info • Kan leggast til alle Swing – komponentar • Blir vist når musepeikaren stoppar over komponenten • Mnemonics • Tegn/bokstav som viser at det finst ein hurtigtast (ALT + bokstav) som kan brukast i staden for mus • Kan brukast på knappar og menyvalg

  13. Grafikk • Komponentar kan “settast ut av drift” når vi vil unngå bruk • Komponenten blir grå • Blir brukt i situasjonar der brukaren ikkje skal kunne bruke komponenten • Komboboksar • Blir brukt for å tilby eit avgrensa utval • Godt hjelpemiddel for å unngå feil • Kan bruke editable dersom brukaren skal kunne skrive inn eigne valg • Fyrer ein action event vi kan fange opp med ein listener når brukaren gjer eit valg

  14. Grafikk • Scroll panes • Blir brukt til å vise bilder eller tekst som krev meir plass enn det er naturleg å ha i eit vindu • Split panes • Viser to komponentar som er skilt med ein strek, vertikalt eller horisontalt • Kan nøstast for å dele opp i fleire felt

More Related