<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.bzz.ch/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.bzz.ch/feed.php">
        <title>BZZ - Modulwiki - modul:archiv:m320:learningunits:lu03</title>
        <description></description>
        <link>https://wiki.bzz.ch/</link>
        <image rdf:resource="https://wiki.bzz.ch/_media/wiki/logo.png" />
       <dc:date>2026-08-31T06:12:30+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/theorie/lu4-kapitel_3?rev=1788091782&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/theorie/lu4-kapitel_2?rev=1788091782&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/theorie/lu4-kapitel_2_v2?rev=1788091782&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/start?rev=1788091601&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/theorie/lu4-kapitel_1?rev=1788091600&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/loesungen/lu4-aufgabe_2?rev=1788091600&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/loesungen/lu4-aufgabe_2.1?rev=1788091600&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/lu04-aufgabe_3.1?rev=1788091600&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/lu04-aufgabe_2.1?rev=1788091600&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/lu04-aufgabe_2-v2?rev=1788091600&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/lu04-aufgabe_1.1?rev=1788091600&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/lu4-aufgabe_1_v2?rev=1788091600&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/exceptions?rev=1788091600&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.bzz.ch/_media/wiki/logo.png">
        <title>BZZ - Modulwiki</title>
        <link>https://wiki.bzz.ch/</link>
        <url>https://wiki.bzz.ch/_media/wiki/logo.png</url>
    </image>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/theorie/lu4-kapitel_3?rev=1788091782&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:09:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>3. Eigene Exception auslösen - ↷ Links angepasst, weil Seiten im Wiki verschoben wurden</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/theorie/lu4-kapitel_3?rev=1788091782&amp;do=diff</link>
        <description>3. Eigene Exception auslösen

Wie im Kapitel 2 erwähnt, sind es oft Benutzereingaben, die zu einem Fehlverhalten bei einer Software führen können - sofern man diese Eingaben eben nicht im Voraus prüft. Dazu folgendes Beispiel.

----------

Beispiel 3.2: Personendaten erfassen</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/theorie/lu4-kapitel_2?rev=1788091782&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:09:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>90. Python-Exceptions (alt) - ↷ Links angepasst, weil Seiten im Wiki verschoben wurden</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/theorie/lu4-kapitel_2?rev=1788091782&amp;do=diff</link>
        <description>90. Python-Exceptions (alt)

Inhalt

	*  Ausnahmen versus Syntaxfehler
	*  Der try...except Block: Umgang mit Ausnahmen
	*  Die else Klausel
	*  Aufräumen nach der finally Verwendung
	*  Auslösen einer Ausnahme
	*  Bedingungen sicherstellen
	*  Zusammenfassung</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/theorie/lu4-kapitel_2_v2?rev=1788091782&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:09:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2. Exception &quot;fangen&quot; - ↷ Links angepasst, weil Seiten im Wiki verschoben wurden</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/theorie/lu4-kapitel_2_v2?rev=1788091782&amp;do=diff</link>
        <description>2. Exception &quot;fangen&quot;

In der ersten Übung wurde aufgezeigt, dass der Umgang mit Laufzeitfehlern - wie z.B. der Dision durch 0 - durch das Exception-Handling geregelt werden kann. 



Abb. 3.1: Die „Fehlerbombe“ 

Damit ein Programm geordnet auf eine Ausnahme (Exception) reagieren kann, braucht es ein entsprechendes Konstrukt. Dies wird bei Python durch</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/start?rev=1788091601&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:41+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>LU03: Exception (2L) - ↷ Seite von modul:m320:learningunits:lu03:start nach modul:archiv:m320:learningunits:lu03:start verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/start?rev=1788091601&amp;do=diff</link>
        <description>LU03: Exception (2L)

Theorie


	* 1. Fehlerbehandlung
	* 2. Exception &quot;fangen&quot;
	* 3. Eigene Exception auslösen
	* 90. Python-Exceptions (alt)



Aufgaben

neue Aufgabe

	* Aufgabe 1 - Was nützen Exception?
	* Aufgabe 2 - Exception fangen und bearbeiten
	* Aufgabe 3 - Exception auslösen
	* Aufgabe 4 - Exceptions auslösen und bearbeiten
	* Aufgabe 90 - Vertiefung Exception auslösen
	* Aufgabe 91 - Vertiefung Exception verarbeiten



Lösungen


	* Lösung 2 - Exception fangen und bearbeiten
	* Lösu…</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/theorie/lu4-kapitel_1?rev=1788091600&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:40+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>1. Fehlerbehandlung - ↷ Seite von modul:m320:learningunits:lu03:theorie:lu4-kapitel_1 nach modul:archiv:m320:learningunits:lu03:theorie:lu4-kapitel_1 verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/theorie/lu4-kapitel_1?rev=1788091600&amp;do=diff</link>
        <description>1. Fehlerbehandlung

In den Kapiteln dieser Learning Unit geht es um die Behandlung von Fehlern sowie dem Schreiben von automatisierten Tests. Aber zunächst befassen wir uns damit, was ein Fehler ist und welche Arten davon wichtig sind fürs Programmieren.</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/loesungen/lu4-aufgabe_2?rev=1788091600&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:40+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>Lösung 4 - Exception auslösen und bearbeiten - ↷ Seite von modul:m320:learningunits:lu03:loesungen:lu4-aufgabe_2 nach modul:archiv:m320:learningunits:lu03:loesungen:lu4-aufgabe_2 verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/loesungen/lu4-aufgabe_2?rev=1788091600&amp;do=diff</link>
        <description>Lösung 4 - Exception auslösen und bearbeiten


from builtins import int

class ListIndexException(Exception):
    def __init__(self, index: int):
        super().__init__(f&#039;Fehler: Ungültiger Index: {index}&#039;)

class ListRangeException(Exception):
    def __init__(self):
        super().__init__(f&#039;Fehler: Zu viele Werte eingegeben&#039;)


class ValueRangeException(Exception):

    def __init__(self, grade: float):
        super().__init__(f&#039;Fehler: Der Notenwert muss im Bereich 1.0 bis 6.0 liegen. Er…</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/loesungen/lu4-aufgabe_2.1?rev=1788091600&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:40+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>Lösung 2 - Exception fangen und bearbeiten - ↷ Seite von modul:m320:learningunits:lu03:loesungen:lu4-aufgabe_2.1 nach modul:archiv:m320:learningunits:lu03:loesungen:lu4-aufgabe_2.1 verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/loesungen/lu4-aufgabe_2.1?rev=1788091600&amp;do=diff</link>
        <description>Lösung 2 - Exception fangen und bearbeiten


class NameList:
    &quot;&quot;&quot;
    Diese Klasse dient der Nutzung von try-except, um das &quot;fangen&quot; eines Fehlers zu implementieren.
    Es wird bewusst eine Liste implementiert, bei der falsche Indexe möglich sind, so dass ein
    IndexError erzeugt wird.
    &quot;&quot;&quot;

    def __init__(self):
        self._name_list = [&#039;Konrad&#039;, &#039;Greta&#039;, &#039;Mike&#039;, &#039;Frida&#039;, &#039;Ephron&#039;]


    def take_name(self, index):
        &quot;&quot;&quot;
        Liefert den durch index angegebene nNamen aus d…</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/lu04-aufgabe_3.1?rev=1788091600&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:40+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>Aufgabe 3 - Exception auslösen - ↷ Seite von modul:m320:learningunits:lu03:aufgaben:lu04-aufgabe_3.1 nach modul:archiv:m320:learningunits:lu03:aufgaben:lu04-aufgabe_3.1 verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/lu04-aufgabe_3.1?rev=1788091600&amp;do=diff</link>
        <description>Aufgabe 3 - Exception auslösen

Ziel

	*  Sie können eigene Codestellen durch das Auslösen einer Exception sichern.
	*  Sie können die ausgelöste Exception bearbeiten.

Auftrag

	*  Laden Sie das Repo von github-classroom.
	*  Ergänzen Sie in der Datei</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/lu04-aufgabe_2.1?rev=1788091600&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:40+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>Aufgabe 2 - Exception fangen und bearbeiten - ↷ Seite von modul:m320:learningunits:lu03:aufgaben:lu04-aufgabe_2.1 nach modul:archiv:m320:learningunits:lu03:aufgaben:lu04-aufgabe_2.1 verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/lu04-aufgabe_2.1?rev=1788091600&amp;do=diff</link>
        <description>Aufgabe 2 - Exception fangen und bearbeiten

Ziel

	*  Sie können mit dem try-except Konstrukt „kritischen“ Code überwachen und im Fehlerfall reagieren.

Auftrag

	*  Laden Sie das Repo von github-classroom.
	*  Führen Sie die main-Methode aus und prüfen Sie am Bildschirm, welche Exception zum Programmabbrch geführt hat.</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/lu04-aufgabe_2-v2?rev=1788091600&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:40+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>Aufgabe 91 - Vertiefung Exception verarbeiten - ↷ Seite von modul:m320:learningunits:lu03:aufgaben:lu04-aufgabe_2-v2 nach modul:archiv:m320:learningunits:lu03:aufgaben:lu04-aufgabe_2-v2 verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/lu04-aufgabe_2-v2?rev=1788091600&amp;do=diff</link>
        <description>Aufgabe 91 - Vertiefung Exception verarbeiten

Ziel

	*  Sie können mit dem try...except Konstrukt Fehler auffangen und behandeln.

Auftrag

Hinweis: Diese Übung basiert auf der vorhergehenden m320-lu03-a01-grade, die nun um das Exception-Handling erweitert wird.</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/lu04-aufgabe_1.1?rev=1788091600&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:40+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>Aufgabe 1 - Was nützen Exception? - ↷ Seite von modul:m320:learningunits:lu03:aufgaben:lu04-aufgabe_1.1 nach modul:archiv:m320:learningunits:lu03:aufgaben:lu04-aufgabe_1.1 verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/lu04-aufgabe_1.1?rev=1788091600&amp;do=diff</link>
        <description>Aufgabe 1 - Was nützen Exception?

Ziel

	*  Sie erkennen Sinn und Zweck von Exception.

Auftrag

	*  Laden Sie das Repo von github-classroom.
	*  Führen Sie die main-Methode in der Datei exception_example.py aus.
	*  Studieren Sie den Effekt des Programms anhand des Outputs am Bildschirm.</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/lu4-aufgabe_1_v2?rev=1788091600&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:40+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>Aufgabe 90 - Vertiefung Exception auslösen - ↷ Seite von modul:m320:learningunits:lu03:aufgaben:lu4-aufgabe_1_v2 nach modul:archiv:m320:learningunits:lu03:aufgaben:lu4-aufgabe_1_v2 verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/lu4-aufgabe_1_v2?rev=1788091600&amp;do=diff</link>
        <description>Aufgabe 90 - Vertiefung Exception auslösen

Ziel

	*  Sie können eigene Exceptions erzeugen und werfen.
	*  Sie können mit try...except den Fehler auffangen und behandeln

Info

Mit Exceptions können auch eigene Fehlerfälle dokumentiert werden. So kann z.B. der Bereich der Noteneingabe (1.0 bis 6.0) geprüft werden. Im Fehlerfall wird dann ein eigenes Exception-Objekt erzeugt und geworfen mit</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/exceptions?rev=1788091600&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:40+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>Aufgabe 4 - Exceptions auslösen und bearbeiten - ↷ Seite von modul:m320:learningunits:lu03:aufgaben:exceptions nach modul:archiv:m320:learningunits:lu03:aufgaben:exceptions verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu03/aufgaben/exceptions?rev=1788091600&amp;do=diff</link>
        <description>Aufgabe 4 - Exceptions auslösen und bearbeiten

Ziele

	*  Sie  können eigene Exceptions erzeugen und werfen.
	*  Sie können mit try...except den Fehler auffangen und behandeln.

Ausgangslage

In der Applikation können eine Anzahl Noten erfasst und ausgelesen werden.
Bisher wurde aber noch keine Fehlerbehandlung realisiert.
Zum Beispiel stürzt das Programm ab, wenn man eine undefinierte Noten lesen will (falscher Index). Ungültige Noten werden antgegengenommen und wenn zuviele Noten erfasst werd…</description>
    </item>
</rdf:RDF>
