38
Introduktion till programmering Fel- och filhantering

HT16 - DA354A - Fel- och filhantering

Embed Size (px)

Citation preview

Page 1: HT16 - DA354A - Fel- och filhantering

Introduktion till programmeringFel- och filhantering

Page 2: HT16 - DA354A - Fel- och filhantering

Dagens upplägg• Förbättrad felhantering• När allt inte går som planerat…• Genom try/except

• Filhantering• Öppna filer• Skapa filer• Läsa/redigera/ersätta innehåll i filer• Stänga filer• Kombinerat exempel

Page 3: HT16 - DA354A - Fel- och filhantering

Några frågor?Innan vi kör igång.

Page 4: HT16 - DA354A - Fel- och filhantering

Att skriva sin egen kod.

Page 5: HT16 - DA354A - Fel- och filhantering

Vad har vi gjort hittills?

Page 6: HT16 - DA354A - Fel- och filhantering

Variabler If-satser Loopar

FunktionerDatatyper

Strängar Heltal Decimaltal Boolskavärden Listor Lexikon

Page 7: HT16 - DA354A - Fel- och filhantering

Vi har lärt oss att göra program!… och att programmera!

Page 8: HT16 - DA354A - Fel- och filhantering
Page 9: HT16 - DA354A - Fel- och filhantering

Programkrascher…Ni har nog varit med om det?

Page 10: HT16 - DA354A - Fel- och filhantering
Page 11: HT16 - DA354A - Fel- och filhantering
Page 12: HT16 - DA354A - Fel- och filhantering
Page 13: HT16 - DA354A - Fel- och filhantering
Page 14: HT16 - DA354A - Fel- och filhantering

När får vi fel?När brukar era fel dyka upp?

Page 15: HT16 - DA354A - Fel- och filhantering
Page 16: HT16 - DA354A - Fel- och filhantering

Designa för fel.Alla gör fel, förr eller senare. Tänk användbarhet.

Page 17: HT16 - DA354A - Fel- och filhantering
Page 18: HT16 - DA354A - Fel- och filhantering
Page 19: HT16 - DA354A - Fel- och filhantering
Page 20: HT16 - DA354A - Fel- och filhantering

Det blev ett undantag

Page 21: HT16 - DA354A - Fel- och filhantering

Ett undantag (eng. exception) är ett fel somuppstår medan ett program körs,

vilket medför att programmet abrupt stoppas (kraschar). Du kan använda try / except

för att snyggt hantera dessa fel/undantag.

Page 22: HT16 - DA354A - Fel- och filhantering

https://www.tutorialspoint.com/python3/python_exceptions.htmLista på undantag

Page 23: HT16 - DA354A - Fel- och filhantering

Hantera fel – fel sker alltid…• I python kan man använda try för försöka utföra något• Skulle det man försöker utföra gå fel, kan man fånga upp felet genom except

Page 24: HT16 - DA354A - Fel- och filhantering

Python kan ge oss olika typer av fel• Exempel på typer av fel:• NameError: När en variabel/funktion inte finns• TypeError: När vi använder datatyper felaktivt• IndexError: Vi försöker hämta ut ett värde från en lista genom ett index som inte finns• ZeroDivisionError: Vi försöker dividera med 0• ImportError: Vi försöker importera något som inte finns• Etc.• Fler typer av fel hittar ni här: https://docs.python.org/3/library/exceptions.html

Page 25: HT16 - DA354A - Fel- och filhantering

Hur hanterar vi undantagen?

Page 26: HT16 - DA354A - Fel- och filhantering
Page 27: HT16 - DA354A - Fel- och filhantering
Page 28: HT16 - DA354A - Fel- och filhantering

Generella fel vs. Specifika fel• Man kan i Python som vi sett, antingen ”upptäcka”:• Generella fel (alla fel)• Specifika fel (av en viss typ)• Ibland vill man helgradera sig mellan flera fel, t.ex.

Page 29: HT16 - DA354A - Fel- och filhantering

Frågor på felhantering?Genom try / except

Page 30: HT16 - DA354A - Fel- och filhantering

Demo!

Page 31: HT16 - DA354A - Fel- och filhantering

Filhantering!Skapa program som kommer ihåg saker!

Page 32: HT16 - DA354A - Fel- och filhantering

Att spara text i filer• Hittills har våra program varit helt nollställda när vi startat dem, vilket ibland har

fungerat bra – men det vore ju roligt om vi kunde spara information mellan olika körningar.

• Det gör man enkelt genom att spara information i textfiler. Detta t.ex. genom• Ren text• Semikolonseparerade värden• Andra typer av strukturer, t.ex.• JSON• Pickle• XML• etc.

Page 33: HT16 - DA354A - Fel- och filhantering

Att öppna filer i Python

Öppnar en fil i läsläge

Öppnar en fil i skrivläge (ersätter innehåll)

Öppnar en fil i skrivläge (lägger till innehåll)

r = read, w = write, a = append

Page 34: HT16 - DA354A - Fel- och filhantering

Funktioner för filer• read() Returnerar all text i filen• readline() Returnerar en rad åt gången• readlines() Returnerar alla rader som en lista• write() Skriver till filen

Page 35: HT16 - DA354A - Fel- och filhantering

Att läsa från en fil

Page 36: HT16 - DA354A - Fel- och filhantering

Läsa in varje rad från en fil

Page 37: HT16 - DA354A - Fel- och filhantering

close()Stänger filen när vi jobbat klart med den

Page 38: HT16 - DA354A - Fel- och filhantering

Demo för filhantering