Fejlfinding Kunsten at finde og rette fejl. DAIMIIntroducerende Objektorienteret Programmering10C.2 Taxonomi  Ingen skriver programmer uden fejl!  Fejl.

Slides:



Advertisements
Lignende præsentationer
Dagens program Hvad er frivillig.dk Hvordan er frivillig.dk bygget op
Advertisements

Grundlæggende PowerPoint
Visitsite.dk © anja nielsen Forskellige typer websider Søgemaskiner Webshops (betaling) Blog (i forandring – og to-vejs kommunikation) Stationære.
Beskyt din computer og dine data!
Du er ved at gå ind i en magisk verden.... Om et øjeblik...
Problemløsningsheuristik I.1 Hvordan besvarer man sin problemstilling? I.Forstå problemstillingen 1.Hvad er det (i min problemstilling) som jeg ikke ved.
NetBeans Installation og brug.
Exceptions. 2 Nordjyllands Erhvervakademi – 2009 Objectives “Unfortunately, errors are a part of life. Some are detected by the compiler, some are detected.
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
Introduktion/Otto Knudsen 1 Overblik WebForms ASP.NET.
Statistik Lektion 5 Log-lineære modeller.
Hvis jeg havde mulighed for at fange regnbuen ville jeg have gjort det
Indledende Programmering Uge 5 - Efterår 2006 Om at udvikle korrekte og pålidelige programmer Susanne Lindros.
Visitsite.dk © anja nielsen Forskellige typer websider Søgemaskiner Webshops (betaling) Blog (i forandring – og to-vejs kommunikation) Stationære.
GP 10, 7/ Grundlæggende programmering Efterår 2001 Forelæsning 10 onsdag 7/ kl. 9:15 – 12:00.
Intro Projekttyper v/ Lise Louv, Uddannelsesafdelingen Siden sidst: evaluering på opgaver og virtuel kursus. Kursets ugeforløb læse – forelæsning – øvelsestime.
Du finder registreringsskemaet på: dev2. siteloom
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Præsentation 28: Eksamen Objektorienteret Middleware.
Statistik II 5. Lektion Log-lineære modeller.
Intro Bemærkninger? Præsentation af litteratur: PHP and MySQL Web Development (SAMS) PHP Pocket Reference (O’Reilly) Dictionary of Networking (Sybex)
Objektorienteret Netværkskommunikation Præsentation 28: Eksamen.
Intro Siden sidst: evaluering på opgaver og virtuel kursus.
DWDK Øvelsesgang 2. Tegnsæt: utf-8 vs. iso Utf-8 = universelt tegnsæt Giver advarsel i validator Dokument skal gemmes i utf-8 format i notepad.
Nyt fra brugerstyring ERFA Møde 9. april Referenceimplementeringer Der planlægges referenceimplementeringer af OIO- SAML til: –Java –.Net –PHP Udgives.
Billedanalyse 7. årgang, dansk – Vi, LN, AH, LP Synlig læring med it Agerbæk Skole og Starup Skole 2013.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Intro Siden sidst: evaluering på opgaver og virtuel kursus.
Opsætning af eclipse for mobile device. Eclipse projekter.
DAIMIIntroducerende objektorienteret programmering3C.1 Design af klasser Specifikation og implementation.
DAIMIIntroducerende objektorienteret programmering4C.1 Systemdesign Design med flere klasser, En kaffeautomat.
Statistik II 4. Lektion Logistisk regression.
 Jens Bennedsen, 2003Introducerende objektorienteret programmering Exceptions.
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
DAIMIIntroducerende objektorienteret programmering12A.1 Moduler Packages i Java.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmering1B.1 Skildpadder Modeller, objekter og opførsel.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
Klassevariable- og metoder Funktionalitet på klasseniveau.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
DAIMIIntroducerende objektorienteret programmering15A.1 Eksamen…
DAIMIIntroducerende objektorienteret programmering12B.1 Obligatorisk Opgave 2 Et program til planlægning af madplaner.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
DAIMIIntroducerende objektorienteret programmering2C.1 Algebraiske begreber Tal, sandhedsværdier og figurer.
SAS Code analyzer Barbara Biørn olsen.
FEN IntroJava AAU1 Introduktion til programmering Et program: HelloWorld Objekter og klasser.
IT for let øvede Modul 5: ”Tekstbehandling ”. Formål KULTUR & FRITIDSHUSET – SKOLEGADE 54 – TLF: Kunne skrive en tekst med store og små bogstaver.
Formularer (Access, del 3). RHS – Informationsteknologi – Udgangspunkt Vi har oprettet en database Vi har defineret en eller flere tabeller Vi.
Opsamling ● Generelle lineære modeller ● Logistisk regression ● Log-lineære modeller ● Mini-projekt.
ANDENGRADSLIGNINGS LØSER Excel Simpel Programmering 9-10 klassetrin.
PHP Intro Webintegrator PHP. PHP Baggrund PHP er et server-side programmeringssprog anvendt til udvikling af dynamiske webapplikationer og websteder.
Sonic Pi Materialet er en oversættelse og tilpasning ud fra den engelske gratis open source ressource ved samme navn
Hjemmesider Begynderguide. Editor En editor er et program, hvor du kan skrive dine koder. Se videoen her for gennemgang af, hvordan du kan downloade og.
Sådan programmerer du arduino via Atmel Studio Af Orla Utoft Sørensen Mercantec.
I det efterfølgende vil vi prøve at opnå forbindelse til de knapper som er på boardet. Opgaven er at vi ved at trykke på knapperne kan få lyset til at.
1.08 Test.
1.08 Test.
Videnskabeligt projekt
projekt eller lignende
Programmeringsprocessen
Velkommen til B klassen
Kode til Event på Kontrol
Ord skaber Da du kom hertil fra et underfuldt sted,
Præsentationens transcript:

Fejlfinding Kunsten at finde og rette fejl

DAIMIIntroducerende Objektorienteret Programmering10C.2 Taxonomi  Ingen skriver programmer uden fejl!  Fejl kan klassificeres som:  Compile-time fejl Dvs. vi har skrevet vores program ukorrekt  Run-time fejl Dvs. vores program foretager sig noget ukorrekt  Logiske fejl Dvs. vores program gør noget andet end forventet

DAIMIIntroducerende Objektorienteret Programmering10C.3 Compile-time fejl  Compileren/Kawa fortæller disse fejl og angiver linjenummeret  Konsulter evt. syntax-beskrivelserne for Java.  Men husk: En fejl kan skyldes kode før den angivne linje

DAIMIIntroducerende Objektorienteret Programmering10C.4 Run-time fejl  Java fortolkeren fanger disse og viser “kaldsstakken”, dvs. hvilke metoder der er blevet kaldt i hvilke filer  Eksempel:  java.lang.NullPointerException  at testing.MethodB(testing.java:13)FEJLEN ER HER  at testing.MethodA(testing.java:9)blev kaldt herfra  at testing.main(testing.java:5)blev kaldt herfra  Brug Kawa menu “Edit/Goto” til at finde linjen, der forårsager fejlen.

DAIMIIntroducerende Objektorienteret Programmering10C.5 Logiske fejl  En “bug”. Desværre vores egen hovedpine  Uendelige løkker Uventede resultater  Kunsten at “debugge” find den ret den  Oftest kan det at finde den være det sværeste; erfaring hjælper - systematik endnu bedre

DAIMIIntroducerende Objektorienteret Programmering10C.6 Forebyg fejl  “Det er bedre at forebygge end at helbrede”  Byg programmer op som klasser/metoder som løser delproblemer  Byg programmerne inkrementelt dvs. byg delene een af gangen og afprøv dem isoleret inden i sættter stumperne sammen: Del og hersk

DAIMIIntroducerende Objektorienteret Programmering10C.7 Isoler en fejl  Hvordan finder man en fejl i linjer kode?  Del og hersk - og brug alle spor:  Sæt “bogmærker” ind i dit program, så du kan se, hvilke dele af programmet, der bliver udført – i hvilken rækkefølge.  Undersøg værdien af interessante variable.

DAIMIIntroducerende Objektorienteret Programmering10C.8 Fundamental debugging  Den mest fundamentale værktøj til debugging:  System.out.println  Skriv bogmærker ud System.out.println( ”Entering method foo” );  Skriv værdien af variable ud System.out.println( ”In method foo, a=”+a+”, b=”+b );

DAIMIIntroducerende Objektorienteret Programmering10C.9 Debuggeren  Kawa har en indbygget debugger  Menu “Project/Compiler Options…” - sæt flueben ved “debugging tables” og ”Rebuild All” (Shift F7)  Sæt et bogmærke (breakpoint) vha. menu “Build/breakpoint set” (F9)  Kør programmet via menu “Build/Debug/Run” (F5)  God ide: Indsæt “debug bar” - menu “View/Debug bar”  Øv – skidtet dur ikke til applets 