Felhantering. Andra brott mot språkets regler. Man kan också i programmet bryta mot ett antal olika regler som gäller. Exempelvis:
|
|
- Astrid Sundberg
- för 5 år sedan
- Visningar:
Transkript
1 Felhantering I de flesta program finns eller uppstår ett antal olika fel. Man behöver en strategi för att hitta och rätta till sådana fel. Olika typer av fel som kan inträffa: syntaktiska fel Olika form av felaktig syntax, dvs brott mot de regler som beskriver hur språket ska se ut. Ex: dobble x = 2; // dobble finns inte som typ int b = true; // true är inte ett heltal b = a! b 2; //! och felaktiga Andra typiska sådana här fel är att glömma att deklarera variabler, glömma att ge dem startvärden och felstavningar av olika namn. Andra brott mot språkets regler Man kan också i programmet bryta mot ett antal olika regler som gäller. Exempelvis: double a = -2; System.out.println(Math.sqrt(a)); // a < 0!! int [] arr = new int[100]; for (int i=1; i <=100; i++) arr[i] = 0; // fel index! int p = 1; // beräkna 20! for (int i=1; i<=20; i++) p = p*i; // för stora tal double tal= 4.5, n = 0; System.out.println( kvot =, a/n); // nämnare 0! De flesta av dessa (men inte alla) avbryter programmet med en felutskrift. Sådana här fel upptäcker kompilatorn (javac) och ger ett felmeddelande vid kompilering. Felhantering 21 March Felhantering 21 March Logiska fel (tankefel) Programmet är tekniskt sett korrekt men gör fel saker, t. ex. räknar fel eller gör nåt annat som det inte borde göra, exempelvis skickar vattenräkningar på 2 miljarder kronor. Exempelvis: Fel på kompilatorer, javamaskinen eller datorn Händer ibland men inte nåt förstahandsproblem. Såna fel kan man ju inte göra så mycket åt annat än att byta dator, systemversion, javaversion eller nåt sånt. // // kontrollerar inte en inmatings giltighet. // här accepteras tex en längd av -7 meter // int längd; Std.out.println( Huru lång är min Herre? ); längd = Std.in.readInt(); Std.out.println( Längd: + längd); // hitta största värdet i en array // int [] arr = new int[200]; // ge värden till alla element i arr int max = arr[0]; for (int i=1; i < 200; i++) { if (arr[i] < max) max = arr[i]; Std.out.println( Största värde är: + max); // ger minsta värde, inte största Felhantering 21 March Felhantering 21 March
2 Vad göra åt felen? Syntaxfel rättas till det gäller att lära sig att förstå vad kompilatorn meddelar och kunna relatera det till sitt program. import extra.*; public class AddSub { public static void main(string [] args) { double a; // fråga efter ett värde på a Std.out.proint("Ge a s värde ); a = Std.in.readDouble(); // fråga efter ett värde på b Std.out.print("Ge b s värde "); b = Std.in.readDouble(); // räkna ut summa och skillnad double sum,diff; sum = a + b; diff = a - b; // skriv ut Std.out.printnl("Summan blev " + sum + " skillnaden blev " + diff); Kompilera detta >Javac AddSub.java AddSub.java:9: unclosed string literal Std.out.proint( Ge a s värde ); AddSub.java:10: ) expected a = Std.in.readDouble(); AddSub.java:15: cannot resolve symbol symbol : variable b location: class AddSub b = Std.in.readDouble(); AddSub.java:20: cannot resolve symbol symbol : variable b location: class AddSub sum = a + b; AddSub.java:21: cannot resolve symbol symbol : variable b location: class AddSub diff = a - b; AddSub.java:25: cannot resolve symbol symbol : method printnl (java.lang.string) location: class extra.extendedwriter Std.out.printnl( Summan blev + sum + 6 errors > Felhantering 21 March Felhantering 21 March De flesta andra brott mot språkets regler leder till av programmet avbryts med en felutskrift. Man kan få en hel del information ur denna utskrift. Exempel: public class Noll { private int a, b; public Noll() { a = 0; b = 0; public Noll(int a, int b) { this.a = a; this.b = b; public int kvot() { return a/b; public static void main(string [] args) { Noll n = new Noll(4,0); System.out.println(n.kvot()); Hur lagar jag mina trasiga program? Generell metod som ofta fungerar: I mån av tillgång, använd huvudet. Andra bra metoder: Titta på programmet och förklara för någon annan vad det gör. Lägg in utskrifter i programmet som hjälp att förstå vad det gör Använd mer avancerade felsökningshjälpmedel, avlusare av olika slag. javac Noll.java java Noll Exception in thread main java.lang.arithmeticexception: / by zero at Noll.kvot(Noll.java:13) at Noll.main(Noll.java:19) Felhantering 21 March Felhantering 21 March
3 Varför producerar man felaktiga program? Programspråk är ganska abstrakta, kan vara svårt att formulera sig på ett naturligt sätt Komplicerade algoritmer kan vara svåra att få korrekta Komplexiteten växer snabbt med programstorleken. Det gör att problemen snabbt växer dig över huvudet. Inmatning är svår att hantera på ett säkert sätt Slutsatser av detta? Arbeta med moduler som är små och som har en väldefinierad uppgift. Då är felmöjligheterna färre och storleken gör det hela hanterbart. Testa varje del innan du fortsätter med nästa. Eftersom varje modul i Java är en eller annan klass så innebär detta att skriva ett huvudprogram i klassen. Felhantering 21 March Felhantering 21 March Var ska jag börja? Börja med de enklaste klasserna, exempelvis kan vi i partikelproblemet börja med en vektorklass. Utveckla den och testa den. Bygg sedan nästa klass om använder denna och fortsätt att testa. Detta sätt att arbeta nedifrån och upp kallar vi på god svenska bottom-up. Fördelen är att det är enkelt att bygga en bit i taget och enkelt av testa. Nackdelen är att det kan vara svårt att ha en vision om hur det färdiga systemet ser ut. Alternativt kan man börja på en övergripande nivå. I partikelexempet börjar vi då med en simulering av det hela. Skapa en box full med partiklar, skapa sedan en simuleringsloop. När vi gjort detta måste fundera över hur det ska gå till att skapa boxen m. m. Fördelen med detta är att vi får en klar bild av hur det hela är tänkt att fungera i grova drag. Svårigheten är att testa på ett bra sätt. För att kunna göra detta måste man tillhandahålla dummies för detaljerna tills dess man skrivit skarpa moduler. Denna metod kallas på lika god svenska top down. Felhantering 21 March Felhantering 21 March
4 Tänk först, programmera sedan! När man bygger ett hus så börjar man inte spika lite nåt hörn på måfå för att sen se vad det kan bli för något, man startar med att göra en ritning. När man skriver ett program så utgår man från ett problem som ska lösas. Innan kod skrivs måste en lösning av problemet skapas och skrivas ned. En analys av lösningen och uppdelning i olika moduler ska göras. Modulernas innehåll ska skissas och en kontroll av lösningens korrekthet måste göras. Det finns formella metoder att göra detta OOADmetoder, det finns också speciella verktyg att dokumentera detta. I enkla problem duger enklare metoder. Felsökning: Om vi nu tömt ut alla intellektuella möjligheter för felsökning så återstår mera tekniska metoder. Att lägga in utskrifter är en bra metod. Det gäller att veta vad som är viktigt och relevant för problemet. Ingen blir lycklig av att få hundratals sidor med lustiga siffror. Man kan studera programflödet genom att helt enkelt lägga in små testutskrifter på olika ställen i programmet.då kan man spåra datorns framfart i koden och se hur programmet utförs. Man kan studera vissa variabler och skriva ut deras värde på olika ställen för att se när och varför den får det värde som den har. Felhantering 21 March Felhantering 21 March Vid mer avancerade felsökningar använder man olika hjälpmedel. Det enkla JDK innehåller en enkel avlusare jdb som kan användas i enklare fall. För mer avancerat arbete behöver man en riktig utvecklingsmiljö (ex Forte, Visual J++, Visual Cafe el dylikt) public class Hello { public static void main(string [] arg) { System.out.println( Welcome to Java ); >javac -g Hello.java >jdb Hello Initializing jdb... 0xfd2c0ca8:class(Hello) > stop in Hello.main Breakpoint set in Hello.main > run run Hello Breakpoint hit: Hello.main (Hello:3) main[1] running... main[1] next Välkommen till Javamain[1] Breakpoint hit: Hello.main (Hello:2) main[1] next Felhantering 21 March Felhantering 21 March
5 Breakpoint hit: main[1] sun.tools.debug.mainthread.run (MainThread:56) main[1] next main[1] Breakpoint hit: sun.tools.debug.mainthread.run (MainThread:54) main[1] next main[1] Hello exited Hur hantera då Java fel som uppstår under arbetet? Genom att skapa undantag. Vad är en undantag? När ett fel uppstår skapas ett objekt som beskriver felet. Detta objekt är av typ Exception, på svenska undantag. Java avbryter programmet vid den punkt där felet inträffade och signalerar att ett undantag kastats. Det kan sedan finnas en hanterare som fångar undantaget, hanterar det och fortsätter programmet. Om ingen hanterare finns används en standardhanterare som skriver ett felmeddelande och avbryter programmet. Felhantering 21 March Felhantering 21 March Du måste i princip alltid i Java tala om vad som ska hända med eventuella fel som kan inträffa. Du har alltid två alternativ: Ta hand om felet. Skicka det vidare till den som anropade mig. Om du är befinner dig i main så innebär alternativ två att programmet avbryts. Man kan tänka sig kombinationer av ovanstående också. T. ex. att man släpper någon resurs, stänger en fil eller nåt sånt och sedan skickar fel vidare. Det finns undantag från den obligatoriska felhateringen. Javas undantag utgår från basklassen Throwable. Den har sedan två härledda klasser Error och Exception. Undantag av typ Error kommer från Javamaskinen eller från någon annan basdel och kan vara saker som slut på minne och sådant. Kan inte hanteras av dig. Undantag av typ Exception kan ytterligare finindelas med flera härledda klasser. En sådan är RuntimeException. De undantag som hör dit är alla vanliga såsom felaktigt arrayindex, division med noll, kvadratrot ur negativt tal etc. Dessa kan hanteras men måste inte. Felhantering 21 March Felhantering 21 March
6 Övriga typer måste hanteras. Varje metod som skapar ett undantag som den inte själv hanterar måste tala om detta i deklarationen så att omvärlden är beredd. Exempelvis har metoden readline som finns i klassen BufferedReader en deklaration som ser ut som: public String readline() throws IOException {... Vill jag använda denna metod måste jag ange vad jag ska göra med eventuella fel. Jag kan t. ex. nu göra public class Person { private String namn; private BufferedReader b = new BufferedReader( new InputStreamReader(System.in)); public Person() { public läsnamn() { // hantera fel själv try { namn = b.readline(); catch (IOException e){ System.out.println( I/O-fel ); Felhantering 21 March Felhantering 21 March Nyckelordet try används för att skapa ett block av satser som är beredda att hantera alla typer av fel. I slutet av detta block finns en eller fleracatch-block, ett för varje typ av fel. Här har vi bara ett catch, för undagtaget IOException. Det betyder rent generellt att något fel vid ineller utmatninginträffat. Om ett sådant fel inträffar här så skrivs ett felmeddelande ut och programmet fortsätter efter catch-blocket. Om ett fel inträffar tilldelas inget nytt namn. Jag kan alternativt göra public class Person { private String namn; private BufferedReader b = new BufferedReader( new InputStreamReader(System.in)); public Person() { public läsnamn() throws IOException { namn = b.readline(); Nu tar jag inte själv hand om felen utan skickar det vidare. Den som anropar denna metod måste ta hand om felen. Felhantering 21 March Felhantering 21 March
7 Nu kan vi t. ex. göra en metod som läser ett heltal och som inte avbryter bara för att vi skriver saker som inte är giltiga heltal. Antag att vi har samma BufferedReader som tidigare. public int readint() { int tal=0; try { tal = b.readline().parseint(); catch (IOException e) { System.out.println( Ellol ); tal = 0; catch (FormatNumberException e) { System.out.println( Fel ); tal = 0; return tal; En bättre variant är ju att se till att det alltid blir ett giltigt svar. Det gör vi genom att försöka läsa igen. Vi kan ALDRIG återvända till den plats där felet uppstod. Vi fortsätter alltid efter det catch-block som hanterar felet. Det är inget som hindrar att jag lägger en repetition runt alltihopa dock. Exempelvis kan jag göra en oändlig repetition som avbryts om det gått bra. Det kan bli yngefär så här: När det blir fel ges ett meddelande och noll returneras. Felhantering 21 March Felhantering 21 March public int readint() { int tal=0; while (true) { try { tal = b.readline().parseint(); break; // alles gut catch (IOException e) { System.out.println ( Fel, gör ett nytt försök ); catch (FormatNumberException e) { System.out.println ( Fel, gör ett nytt försök ); return tal; Nu läser vi en rad och försöker konvertera den till ett heltal. Om det går bra så lämnar vi repetitionen. Annars blir det en felutskrift och vi försöker igen. Kan jag använda detta själv på nåt vis? Du kan själv kasta undantag när felaktiga saker inträffar. Exempelvis: import extra.*; // en klass om innehåller en del egenskaper hos en person public class Person { protected String namn = "NoName"; protected String adress = ""; protected int födelse_år; protected int inkomst; // konstruktor där alla data anges public Person(String n, String a, int år, int ink) { if (n.equals("nisse")) throw new IllegalArgumentException("Otillåtet namn"); namn = n; adress = a; födelse_år = år; inkomst = ink; // standardperson public Person() { public static void main(string [] args) { Person p2, person; // skapa en personreferens // skapa en ny slumpmässing person person = new Person("Göran Person", "Rosenbad", 1949, 10); p2 = new Person("Nisse", "Rosenbad", 1949, 10); // skrivut data om denne person person.skrivut(); ; Felhantering 21 March Felhantering 21 March
8 java Person.java java Person Exception in thread main java.lang.illegalargumentexception: Otillåtet namn at Person.<init>(Person.java:15) at Person.main(Person.java:127) Nu utlöstes ett undantag i konstruktorn. Eftersom det inte finns någon catch i main så avbryts programmet. Om du vill hantera detta så blir det try och catch vid skapandet av personer. Om du vill ha en finare kontroll över felen kan du skapa dina egna undantag. Du gör dessa genom att bygga ut lämplig basklass. Exempvis så här: public class FelaktigtNamn extends RuntimeException { ; public FelaktigtNamn() { public FelaktigtNamn(String s) { super(s); IllegalArgumentException är av typen RuntimeException som inte kräver hantering. Felhantering 21 March Felhantering 21 March Ger dig en ny felklass som du kan använda, t. ex. så här: import extra.*; // en klass om innehåller en del egenskaper hos en person public class Person { protected String namn = NoName ; protected String adress = ; > javac Person.java > java Person Exception in thread main FelaktigtNamn: Otillåtet namn: Nisse at Person.<init>(Person.java:15) at Person.main(Person.java:127) Hanteras precis som tidigare. protected int födelse_år; protected int inkomst; // konstruktor där alla data anges public Person(String n, String a, int år, int ink) { if (n.equals( Nisse )) throw new FelaktigtNamn( Otillåtet namn: + n); namn = n; adress = a; födelse_år = år; inkomst = ink; Felhantering 21 March Felhantering 21 March
Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel
Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av
Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar
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 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker
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 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker
Att skriva till och läsa från terminalfönstret
Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen
1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.
1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som
Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2
AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga
Föreläsnings 9 - Exceptions, I/O
Föreläsnings 9 - Exceptions, I/O Josef Svenningsson Tisdag 6/11 Undantag - Exceptions Kommer ni ihåg det här programmet? Det var ett av de första ni såg i första föreläsningen. import javax.swing.*; public
TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P
UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr
Villkor och tester. Utförande satser bygger upp metoderna, man brukar finindela detta i: sekvenser. Ett program består i princip av: selektioner (val)
Villkor och tester Ett program består i princip av: Deklarationer som inför variabler, dvs namngivna minnesceller som används för att lagra data. int a; double radie=1.0, yta; double d = 4.5; String s
Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Testning av program. Verklig modell för programutveckling
Fel i program När man skriver program uppkommer alltid fel. Felen kan indelas i följande kategorier: Under kompileringen upptäcker kompilatorn fel som handlar om att man använt konstruktionerna i programspråket
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Felhantering Eclipse Felsökning Command line argumenter
Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016
Command line argumenter Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 /* Cla. java * Programmet illustrerar
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 12 Föreläsning 12 Rörliga figurer Klassen Timer Undantag Något om applets Rörliga appletsfigurer Klassen Timer Undantag Något om applets Klassen javax.swing.timer I Swing finns en klass Timer
Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016
Objektorienterad Programkonstruktion Föreläsning 4 8 nov 2016 Nästade klasser I Java går det att deklarera en klass inuti en annan klass. Vi kallar detta för att en yttre klass innehåller en inre klass.
Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.
Fält av referenser Tanken med objekt är man kan bygga ihop olika sorts objekt till nya saker. Sålunda kan man exempelvis använda Bil och Trafikljus att konstruera ett Väg-objekt. Om Bil och Trafikljus
Objektorienterad programmering i Java
Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet
Klassdeklaration. Metoddeklaration. Parameteröverföring
Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar
Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.
Outline Objektorienterad Programmering (TDDC77) Föreläsning XIV: Undantag, Design Ahmed Rezine IDA, Linköpings Universitet Undantag Design Hösttermin 2017 En frukt har ett namn Man kan lägga en frukt i
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning XIV: Undantag, Design Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Hashing Undantag Design Outline Hashing Undantag Design En frukt
Undantag. Engelska: exceptions. Skansholm: exceptionella händelser
Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker öppna en fil som inte finns, dividera med noll, indexera utanför en array osv. bjectorienterad programmering
732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner
732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (
Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2014-10-17 Skrivtid: 0800-1300 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till
F4. programmeringsteknik och Matlab
Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner
DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin
DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:
Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck
Betrakta följande uttryck a +(b + c) d + e (f + g h) Parsing med Recursive Descent, Avbildningsklasser Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 22 november 2010 Beräkning med regler: multiplikation
Tentamen. Lösningsförslag
Sida 1/8 Tentamen Grundläggande programmering i Java A 5p, DTAA32 2002-03-22 Lösningsförslag Uppgift 1 ( 3p ) Utskriften blir: Skriv in ett tal 24 47 48 intal=471 Uppgift 2 ( 6p ) a.) b.) c.) d.) e.) falskt
Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag
Undantagshantering Fördjupad Java Ett undantag (Exception) är ett objekt som påtalar en ovanlig eller felaktig situation i ett program. Undantag kastas av programmet och kan fångas och hanteras. Java har
Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag
Undantagshantering Fördjupad Java Ett undantag (Exception) är ett objekt som påtalar en ovanlig eller felaktig situation i ett program. Undantag kastas av programmet och kan fångas och hanteras. Java har
Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2014-10-17 Skrivtid: 0800-1300 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till
//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.
/*==================================================================== Detta program hör ihop med dokumentet EXEMPEL_AVERAGE_POINTS.PDF där det finns förklaringar. ======================================================================*/
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
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 Klassen Mio ffl Särfall ffl Interface Kungl. Tekn. Högskolan
Tentamen FYTA11 Javaprogrammering
Lunds universitet FYTA11 Institutionen för Astronomi och Teoretisk fysik HT 12 Tentamen FYTA11 Javaprogrammering Onsdag 9 januari 2013, 10:15 14:15 Instruktioner Hjälpmedel: Papper och penna. Behandla
Föreläsning 2, vecka 8: Repetition
TDA 548: Grundläggande Programvaruutveckling Föreläsning 2, vecka 8: Repetition Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Idag Metoder och terminologi Referensvärden och arrays Interface och ritning
SMD 134 Objektorienterad programmering
SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning
Föreläsning 6: Metoder och fält (arrays)
TDA 545: Objektorienterad programmering Föreläsning 6: Metoder och fält (arrays) Magnus Myréen Chalmers, läsperiod 1, 2015-2016 I (föregående och) denna föreläsning Läsanvisning: kap 2 & 13 meddelanden
4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &
TelefonKostnad static Math static $ & )&* +,-&. 0 +& + & 3 356+573 ) & & 6 3 3 & 3 * 6 3.:; < = 3 = 6 ; < : & >?.;,;@.A@;0,0,? @B0 C,0 > *. > 5 C D & D 5 * &! ; 66C! * C, 0 E,&! 0 F,G0 >: = = C 3 & HI
Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.
Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett
Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:
Omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-17, TDA540 Dag: 2018-04-06, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar:
JAVAUTVECKLING LEKTION 7
JAVAUTVECKLING LEKTION 7 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Olika språkversioner (Klassen Locale) Utskrift i kommandofönster Inläsning via kommandofönster Standardklassen
Fördjupad Java. Undantagshantering. Fel
Fördjupad Java 1 Undantagshantering Ett undantag (Exception) är ett objekt som påtalar en ovanlig eller felaktig situation i ett program. Undantag kastas av programmet och kan fångas och hanteras. Java
Föreläsning 3-4 Innehåll
Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå
List.java. List.java. Printed by Tom Smedsaas
Mar 03, 08 17:48 Page 1/3 class List * Representerar en länkad lista av godtyckliga objekt public class List { ListNode * Noder i listor protected static class ListNode { protected Object data; protected
JAVA Mer om klasser och objektorientering
JAVA Mer om klasser och objektorientering Begreppet package - paket Package används när man t ex vill skapa ett eget bibliotek med klasser. Sen är det då meningen att man ska importera detta paket i det
LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p
UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det
Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel
Programmeringsteknik för Bio1 och I1 Övning 2 Kort repetition Övningsgrupp 3 (Sal E33) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1310/
Lösningsförslag, tentamen FYTA11 Javaprogrammering
Lunds universitet FYTA11 Institutionen för Astronomi och Teoretisk fysik HT 12 Lösningsförslag, tentamen FYTA11 Javaprogrammering Onsdag 9 januari 2013, 10:15 14:15 Instruktioner Hjälpmedel: Papper och
Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?
Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng
TENTAMEN I PROGRAMMERING Ansvarig: Jan Skansholm, tel 7721012 Betygsgränser: Hjälpmedel: Sammanlagt maximalt 60 poäng. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng Skansholm,
FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl
Högskolan Dalarna sid 1 av 6 DI-institutionen Hans-Edy Mårtensson Sten Sundin FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 1. Grunderna i
Kompilera och exekvera Javakod
Kompilera och exekvera Javakod Förberedelser För att kunna göra dessa övningar måste du ha installerat Java Development Kit, JDK, som bland annat innehåller Java kompilatorn, javac. Hur du installerar
Testning och felhantering
Testning och felhantering Föreläsning 8 TDA540 - Objektorienterad Programmering Sammanfattning Textfiler Flerdimensionella fält ArrayList (dynamiska vs. statiska datastrukturer) Shorthand operatorer Testning
EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.
EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade
Felhantering TDDD78, TDDE30, 729A
Felhantering TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Felhantering 2 Ofta antar vi att allt ska fungera Alla filer vi behöver finns går att öppna Tillräckligt mycket minne finns Servrar som
Exceptions (undantag) Murach s: kap 7
Exceptions (undantag) Murach s: kap 7 2013-01-28 1 Winstrand Development Exceptions (undantag) Inträffar ett oförutsägbart fel i när programmet körs kommer ett undantag (exception) att inträffa Undantaget
Tentamen , Introduktion till Java, dtaa98, dtea53
Mittuniversitetet 2007-09-01 Institutionen för informationsteknologi och medier Sid:1(3) dtaa98, dtea53 Martin Kjellqvist; Linda Karlsson, Ulf Reiman Lösningsansatser Tentamen 2007-09-01, Introduktion
OOP Objekt-orienterad programmering
OOP F12:1 OOP Objekt-orienterad programmering Föreläsning 12 Mer om JOptionPane Undantagshantering Vad är det? try catch Kasta egna undantag Filhantering spara objekt mellan körningar Användardialog via
Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:
Omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-17, TDA540 Dag: 2018-08-30, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar:
Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2015-01-10 Skrivtid: 8.00 13.00 Hjälpmedel: Java-bok Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till
Del A (obligatorisk för alla)
Del A (obligatorisk för alla) A1. Ringa in rätt svarsalternativ eller skriv svar i ruta om sådan a) Satsen double x = (int)(1 + 3/2.0) + 3.; resulterar i b) Satsen int x = (int)(1 + 3/2.0) + 3.; resulterar
JAVAUTVECKLING LEKTION 4
JAVAUTVECKLING LEKTION 4 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Iterationer (loopar) Algoritmer Mer om felsökning 1 WHILE-SATSEN String s = JOptionPane.showInputDialog("Talet
Tentamen , Grundläggande programmering i Java
Institutionen för informationsteknologi och medier Sid:1(3) Grundläggande programmering i Java Martin Kjellqvist Lösningsförslag, lösningsansatser Tentamen 2006-01-20, Grundläggande programmering i Java
Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2012-06-04 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till
Objektorienterad programmering
Objektorienterad programmering Föreläsning 8: testning och felhantering Dr. Alex Gerdes Dr. Carlo A. Furia Hösttermin 2016 Chalmers University of Technology Sammanfattning föreläsning 7 Skriva och läsa
Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod
Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer
TDDC77 Objektorienterad Programmering
TDDC77 Objektorienterad Programmering Föreläsning 5 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Arrayer Metoder Räckvidd och Livslängd Arrayer Vända om inlästa värdena Vända om
TDDC77 Objektorienterad Programmering
TDDC77 Objektorienterad Programmering Föreläsning 2 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin, 2018 Outline Emacs Introduktion till Objektorienterad Programmering Introduktion till Java Variabler
TENTAMEN OOP
TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Grundläggande programmering med C# 7,5 högskolepoäng
Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)
ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet
ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,
Föreläsning 14. Filhantering
Föreläsning 14 Filhantering Filhantering Att hantera filer, dvs att läsa eller skriva data till en fil är en viktig del i de flesta program. Ur Javas synvinkel är filer objekt med egenskaper och metoder
Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs
Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera först talet 37 med 2. Använd heltalsdivision. Det ger kvoten
Tentamen OOP 2015-03-14
Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning
DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga
203-03-9 203-03-9 DIAGNOSTISKT PROV Tid Klockan 09.00-2.00 Hjälpmedel Inga Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. Rättning Tentamen omfattar 6
1 Comparator & Comparable
1 Comparator & Comparable 1.1 Implementation av Comparable Att implementera Comparable innebär att man gör objekt av sin klass jämförbara med andra och att det därmed antas existera en naturlig ordning
Dagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram?
Programmeringsteknik och Matlab Övning 2 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Klasshierarkier - repetition
Klasshierarkier - repetition Klasser kan byggas på redan denierade klasser, egna och/eller färdigskrivna, genom: I att klassobjekt används som attribut (instansvariabler): har-relation. Exempel: traksystemet
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada
Mer källkod Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne Erik Forslin efo@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 1 Styrstrukturer i Java En styrstruktur är något som påverkar
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2018-03-16 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Obligatorisk uppgift: Numerisk kalkylator
Informationsteknologi Tom Smedsaas 22 augusti 2018 Obligatorisk uppgift: Numerisk kalkylator Programmet skall läsa in aritmetiska uttryck samt beräkna och skriva ut deras värden. Programmet ska läsa från
Lösningar för tenta 2 DAT043,
Lösningar för tenta 2 DAT043, 2018-06-08. Uppgift 1 public class Car{ private String model; private String year; private double price; public Car(String model, String year, double price){ this.model =
Programmering A. Johan Eliasson johane@cs.umu.se
Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer
Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2015-03-19 Skrivtid: 14:00 19:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
LÖSNINGSFÖRSLAG TILL TENTAMEN PROGRAMMERINGSMETODIK MOM2 - JAVA, 4P.
Uppgift 1 (2 poäng) Utgå från följande klassdefinition : public class TempKlass public String uttext; public static int svar; LÖSNINGSFÖRSLAG TILL TENTAMEN PROGRAMMERINGSMETODIK MOM2 - JAVA, 4P. 991122
Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.
Tentamen Programmeringsteknik I 2011-03-17 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning Generiska klasser Undantag Interface Nästlade klasser 1 Problem:
DAT043 Objektorienterad Programmering
DAT043 Objektorienterad Programmering Detta är en exempeltenta som innehåller gamla tentauppgifter av ungefär liknande slag som ni kan förvänta er se på ordinarie tenta i Del 1 respektive Del 2. Dock är
"if"-satsen. Inledande programmering med C# (1DV402)
"if"-satsen Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i verket if-satsen
Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin
Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 Hjälpmedel: Inga hjälpmedel är tillåtna
C++ Objektorientering - Klasser. Eric Elfving
C++ Objektorientering - Klasser Eric Elfving 1 / 20 Återblick struct struct är bra att ha för att skapa aggregat - slå ihop flera data till en ny datatyp. Ett problem med struct är åtkomst... 2 / 20 Följande
Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER
Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Från laboration 3 till 4 I laboration 3 har du implementerat klasser implementerat metoder i klasserna I laboration 4 kommer du att implementera
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag
Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek
De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000
Recitation 4. 2-D arrays. Exceptions
Recitation 4. 2-D arrays. Exceptions Animal[] v= new Animal[3]; 2 declaration of array v Create array of 3 elements v null a6 Assign value of new-exp to v Assign and refer to elements as usual: v[0]= new
I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program
Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2019-03-22 Skrivtid: 14:00 19:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer