Avlusning Debugger (”avlusare”) Breakpoints Watch.

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

Mall för ett C#-program
Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Relationsoperatorer Java/C# C/C++ Visual Basic FORTRAN PASCAL ORACLE
9. Gör ritningen innan Du bygger huset
10. Elementen i strukturerad programmering
Klasser och objekt.
Funktioner och programorganisation
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Datatyper C# C/C++ Java VB Fortran Pascal bool boolean Boolean
Klassarv och inkapsling
OOP Objekt-orienterad programmering
Några standardalgoritmer
Filhantering Grundprincipen för filhantering Öppna filen
Metoder i java Det finns två typer av metoder i java
Polymorfism.
Välkommen Vahid Mosavat
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Att programmera i språket Java
Föreläsning 4 Python: Definiering av egna funktioner Parametrar
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Strömmar Vid läsning och skrivning används något som kallas strömmar.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Exception Handling Kapitel 9. Agenda Exceptions try, throw and catch Skapa en egen exception-klass Multipla throw / catch Slänga vidare en exception Olika.
Programmering i C# 2. Inledande detaljer.
Föreläsning 11 Arrayer.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Programmering i C# 3. Klasser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Repetition inför slutprovet
int res2=Math.max(tal1,tal2);
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Polymorfism.
Räckvidd och synlighet. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Synlighet (meddelandesändning) Det.
Arv.
OOP Objekt-orienterad programmering
Programmeringsteknik för Media1 & K1
1. En infrastruktur för programutveckling
OOP F6:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList toString() – metoden.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Föreläsning 8 Arv och abstrakta klasser. Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen ( extends.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
Föreläsning 14 ”Enkel” Filhantering.
Objektorientering.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 C# I/O Streams C# använder “strömmar” för in- och utmatningsoperationer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
PROGRAMMERINGSTEKNIK Övningsgrupp 3 Marcus Hjelm
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
Länkade listor Binära träd
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Undantag - eng. Exceptions Viktig del av klassbiblioteksdesign “Hoppa direkt ut med felkod” class.
Programmering i C# Laborationer.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
Programmeringsteknik för K och Media
1 Övning6 Läsning från fil till java objekt Sökning Sortering.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
1 Föreläsning 6 Repetition på metoder Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
Föreläsning 15: Exceptions & lite swing, gränssnitt
Presentationens avskrift:

Avlusning Debugger (”avlusare”) Breakpoints Watch

Kompileringsfel Två potentiella fel i detta exempel: CS0006 CS0103 class FelTest1 { public static void Main ( ) MittSpace.MittHello.SayHello(); int talet = 7; System.Console.WriteLine(Talet); } Två potentiella fel i detta exempel: CS0006 Saknad dll-fil Läs felmeddelandena noggrant, och tolka dem ”rätt”. Ofta är ett visst kompileringsfel egentligen inte ett fel, utan en konsekvens av ett fel någonstans tidigare i programmet. CS0103 ”Felstavning”

Logiska fel Två potentiella fel i detta exempel: ”Felstavning” class FelTest2 { public static void main ( ) int antalTimmar = 40; int timlön = 110; int summa = antalTimmar + timlön; System.Console.WriteLine(summa); } Två potentiella fel i detta exempel: ”Felstavning” Logiska fel är luriga, eftersom de inte ger kompileringsfel, men ett felaktigt resultat vid exekvering. Det är viktigt att ”torrköra” sina algoritmer, för att se att de räknar rätt. Felaktig algoritm

Spårutskrifter class MyTracking { public static void Main() { int a = 7; int b = 0; System.Console.Error.WriteLine ("1. a:" + a + " b:" + b); int c = a / b; System.Console.Error.WriteLine ("2. c:" + c); System.Console.WriteLine(c); } }

Exception Ett Exception är ett tillstånd, som uppstår under exekveringen, som vanligtvis innebär något felläge Vissa fel kan vi hantera (fånga) File not found Divide by 0 Array access Casting error Vissa kan vi inte hantera LinkageError VerificationError

Grundstrukturen try { … // kod där undantag kan kastas } catch (Exception e) { … } // kan vara flera catch efter varandra finally // Exekveras alltid, om man har den med

try try-blocket innehåller den kod, där vi kan anta att ett Exception kan komma att kastas. Koden kan explicit kasta ett Exception. if (...) throw ... Systemet kan kasta ett Exception (ex division med noll), utan att vi själva skriver throw

catch catch-block har kod för att hantera Exceptions Kan vara mer än ett catch-block. Måste vara minst ett. Varje catch-block är en “exception handler”. Varje catch-block specificerar typen av Exception det kan fånga och hantera. Om inget Exception kastas, exekveras inte heller catch-blocket. Om ett Exception kastas, men inget catch-block för detta finns: yttre try-catch-block söks igenom för en hanterare för detta Exception Undantaget “kastas vidare” till anropande metod

finally finally-blocket exekveras alltid, oavsett om ett Exception kastas eller inte Lämpligt för att “städa upp” efter sådant som kan ha initierats i try-blocket.

Propagering try { programsatser; } catch (Xx fel) catch (Yy fel) Om det inte finns någon hanterare för ett specifikt Exception, skickas kontrollen till “anropande” metod, I hopp om att det kan hanteras där Detta kallas för “exception propagation.” Det kan fortsätta tills den slutligen når själva operativsystemet 1 Nästlat try- block 2 3 4 5 6

throw class ExceptionTest { public static void Main( ) System.Console.Write("Ett tal:"); int a = int.Parse( System.Console.ReadLine() ); Exception ex = new Exception("Mitt felobjekt!"); try if (a == 1) throw new Exception(); if (a == 2) throw new Exception("Ett annat felobjekt!"); if (a == 3) throw ex; } catch (Exception e) System.Console.WriteLine( e.Message ); System.Console.WriteLine( e.StackTrace ); System.Console.WriteLine( e );

Att definiera egna Exceptions public class MyException : Exception { public MyException( ) : this("Sorry, mitt fel!") } public MyException(String msg) : base(msg) Vanligen två konstruktorer: Med en String som parameter Anropar superklassen Utan parametrar Anropar den andra med förbestämd textsträng

Använda egna Exceptions public class MyExceptionTest { public static void Main ( ) try Metoden(); } catch (Exception e) System.Console.WriteLine( e.StackTrace ); public static void Metoden ( ) throw new MyException();

Exempel: Division med noll public class NollDivision : ArithmeticException { public NollDivision( ) super("Division med noll!"); } public NollDivision(String msg) super(msg);

Exempel: Division med noll public class DivisionTest { public static void Main () System.Console.Write(“Tal a: “); int a = int.Parse(System.Console.ReadLine()); System.Console.Write(“Tal b: “); int b = int.Parse(System.Console.ReadLine()); try double d = Quotient(a, b); System.Console.WriteLine(d); } catch (NollDivision nd) System.Console.WriteLine( nd ); public static double Quotient (int numerator, int denominator) if (denominator == 0) throw new NollDivision(); return (double) numerator / denominator;

Exceptions i Java Java har två typer av undantag (Exception): unchecked (RunTimeExceptions) måste inte programmeraren koda hantering för (ex felaktiga talformat, felaktig indexering av arrayer). checked måste programmeraren koda hantering för (exempelvis allt som kan relateras till in- och utmatningar). Om programmet anropar en metod som kan kasta (throw) en checked exception, måste programmet ha kod för att hantera detta.

Undantagshantering Några skillnader mellan olika språk C# Java C++ Alla undantag är objekt Undantagen kan representeras av annat än objekt, ex heltal, textsträngar Alla undantag är ”unchecked” ”checked” undantag kräver obligatoriska try-catch block, eller ”throws” i metodsignaturen Catch-block utan Exception-argument tillåtet Catch-block måste ange Exception-typ