diff --git a/.vs/prog2-ss2020-wienkop/DesignTimeBuild/.dtbcache.v2 b/.vs/prog2-ss2020-wienkop/DesignTimeBuild/.dtbcache.v2
index 600347930f223873cdbd06504b4951256c09ab56..73aa264349adc0c70e6470fcc312b89d6a404b9a 100644
Binary files a/.vs/prog2-ss2020-wienkop/DesignTimeBuild/.dtbcache.v2 and b/.vs/prog2-ss2020-wienkop/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/.vs/prog2-ss2020-wienkop/v16/.suo b/.vs/prog2-ss2020-wienkop/v16/.suo
index dcef99375b2697faf18be2f0dca185f0c16f1893..4b6366c39c3895d5f57cc59148fba9f891e46422 100644
Binary files a/.vs/prog2-ss2020-wienkop/v16/.suo and b/.vs/prog2-ss2020-wienkop/v16/.suo differ
diff --git a/01Buergeramt-Di/obj/Debug/netcoreapp3.1/01Uebg_Buergeramt-Di.csprojAssemblyReference.cache b/01Buergeramt-Di/obj/Debug/netcoreapp3.1/01Uebg_Buergeramt-Di.csprojAssemblyReference.cache
index fb8b4de2efee802eaa6349069580d22e839ec1be..e84921a470a178d6c34a6d16975b66db84b52171 100644
Binary files a/01Buergeramt-Di/obj/Debug/netcoreapp3.1/01Uebg_Buergeramt-Di.csprojAssemblyReference.cache and b/01Buergeramt-Di/obj/Debug/netcoreapp3.1/01Uebg_Buergeramt-Di.csprojAssemblyReference.cache differ
diff --git a/01Buergeramt/obj/Debug/netcoreapp3.1/01Uebg_Buergeramt-Mo.csprojAssemblyReference.cache b/01Buergeramt/obj/Debug/netcoreapp3.1/01Uebg_Buergeramt-Mo.csprojAssemblyReference.cache
index 7c4934efa789ae0c72b5608c744eb228ecdeac61..09f733cba816ea75758c5185c8e79a12110d4074 100644
Binary files a/01Buergeramt/obj/Debug/netcoreapp3.1/01Uebg_Buergeramt-Mo.csprojAssemblyReference.cache and b/01Buergeramt/obj/Debug/netcoreapp3.1/01Uebg_Buergeramt-Mo.csprojAssemblyReference.cache differ
diff --git a/01Indexer/obj/Debug/netcoreapp3.1/01Indexer.csprojAssemblyReference.cache b/01Indexer/obj/Debug/netcoreapp3.1/01Indexer.csprojAssemblyReference.cache
index 4604200e8108358ecfd89e86f2787c9523eed2ff..ed51084113c37d43a99e791dd0a169f2b0c6b55a 100644
Binary files a/01Indexer/obj/Debug/netcoreapp3.1/01Indexer.csprojAssemblyReference.cache and b/01Indexer/obj/Debug/netcoreapp3.1/01Indexer.csprojAssemblyReference.cache differ
diff --git a/01KlassenWiederholung/obj/Debug/netcoreapp3.1/01KlassenWiederholung.csprojAssemblyReference.cache b/01KlassenWiederholung/obj/Debug/netcoreapp3.1/01KlassenWiederholung.csprojAssemblyReference.cache
index a3dc7452ef70e739a100ce883ea2937592e63c8a..94be5c29ccc5594c3d7ed74fab336753939a60f4 100644
Binary files a/01KlassenWiederholung/obj/Debug/netcoreapp3.1/01KlassenWiederholung.csprojAssemblyReference.cache and b/01KlassenWiederholung/obj/Debug/netcoreapp3.1/01KlassenWiederholung.csprojAssemblyReference.cache differ
diff --git a/01OperatorTrueFalse/obj/Debug/netcoreapp3.1/01OperatorTrueFalse.csprojAssemblyReference.cache b/01OperatorTrueFalse/obj/Debug/netcoreapp3.1/01OperatorTrueFalse.csprojAssemblyReference.cache
index 9dfc37ed889ff4d2deed3ec1295b3086aa3c45af..cf534861a3640f8554f9ce25bfe11127debf486c 100644
Binary files a/01OperatorTrueFalse/obj/Debug/netcoreapp3.1/01OperatorTrueFalse.csprojAssemblyReference.cache and b/01OperatorTrueFalse/obj/Debug/netcoreapp3.1/01OperatorTrueFalse.csprojAssemblyReference.cache differ
diff --git a/02 Uebg KlasseTimeOpOverloading/obj/Debug/netcoreapp3.1/02 UebgMo KlasseTimeOpOverloading.csprojAssemblyReference.cache b/02 Uebg KlasseTimeOpOverloading/obj/Debug/netcoreapp3.1/02 UebgMo KlasseTimeOpOverloading.csprojAssemblyReference.cache
index 558b0cf17b36070b2d1200b85593eed5f7ec0313..75c16613d637ba1aee3feac158410536d13849e8 100644
Binary files a/02 Uebg KlasseTimeOpOverloading/obj/Debug/netcoreapp3.1/02 UebgMo KlasseTimeOpOverloading.csprojAssemblyReference.cache and b/02 Uebg KlasseTimeOpOverloading/obj/Debug/netcoreapp3.1/02 UebgMo KlasseTimeOpOverloading.csprojAssemblyReference.cache differ
diff --git a/05 InterfaceIntro/Program.cs b/05 InterfaceIntro/Program.cs
index 2ab92019fb08fadd346dc41ba6f170e3b030cf7e..fdbda9c7cb2884a39d4c8e7228d097b5bf8f9204 100644
--- a/05 InterfaceIntro/Program.cs	
+++ b/05 InterfaceIntro/Program.cs	
@@ -4,7 +4,7 @@ namespace _05_InterfaceIntro
 {
     interface IBesteuerbareObjekte
     {
-        double Steuern();
+        /* public abstract */double Steuern();
     }
     interface IVerkaufbareObjekte
     {
@@ -12,37 +12,60 @@ namespace _05_InterfaceIntro
     }
 
     abstract class Kfz : IBesteuerbareObjekte, IVerkaufbareObjekte
+        // abstract:
+        // 1) Von dieser Klasse können keine Objekte angelegt werden (manchmal eine wünschenswerte Eigenschaft)
+        // 2) Die Klasse enthält eine oder mehrere abstrakte Methode(n) und muss deshalb als abstract def. werden
     {
-        public abstract double Steuern();
-        public abstract void Verkaufen();
+        public abstract double Steuern();   // Steuern() und Verkaufen() müssen wieder als abstrakt definiert sein,
+        public abstract void Verkaufen();   // da ansonsten die Interface-Klassen nicht implementiert werden
+        public void TueEtwas() { }
     }
     class Pkw : Kfz
     {
         double hubraum;
+
+        // Steuern() und Verkaufen() müssen in dieser nicht-abstrakten Klasse implementiert
+        // werden, da ansonsten nicht alle abstrakten Methoden implementiert sind
         public override double Steuern() => (hubraum + 99) / 100 * 9.50;
         public override void Verkaufen()
         {
             Console.WriteLine("PKW wird verkauft");
+            TueEtwas();
+        }
+    }
+    class Pflanzen : IVerkaufbareObjekte
+    {
+        public void Verkaufen()
+        {
+            Console.WriteLine("Pflanze wird verkauft");
         }
     }
     class Immobilien : IBesteuerbareObjekte, IVerkaufbareObjekte
     {
+        // Steuern() und Verkaufen() müssen direkt implementiert werden, da ansonsten
+        // nicht alle abstrakten Methoden implementiert sind
         public double Steuern() => 1000;
         public void Verkaufen() { Console.WriteLine("Haus wird verkauft"); }
     }
+
     class Program
     {
         static void Main(string[] args)
         {
-            IBesteuerbareObjekte[] bObj = new IBesteuerbareObjekte[2];
+            IBesteuerbareObjekte[] bObj = new IBesteuerbareObjekte[3];
             Immobilien i1 = new Immobilien();
             Pkw p1 = new Pkw();
             bObj[0] = i1;
             bObj[1] = p1;
+            //bObj[2] = new Pflanzen();
 
             IVerkaufbareObjekte[] vObj = new IVerkaufbareObjekte[2];
             vObj[0] = i1;
             vObj[1] = p1;
+            vObj[2] = new Pflanzen();
+
+
+
 
             //i1.Verkaufen();
             i1.Steuern();
diff --git a/05 InterfaceIntro/obj/Debug/netcoreapp3.1/05 InterfaceIntro.csprojAssemblyReference.cache b/05 InterfaceIntro/obj/Debug/netcoreapp3.1/05 InterfaceIntro.csprojAssemblyReference.cache
index 8a5ef041ae8402be96bf3fc66b33aedfc9a2f5c5..74fe67b1ca671095970d4a7fbcae2417231e8f41 100644
Binary files a/05 InterfaceIntro/obj/Debug/netcoreapp3.1/05 InterfaceIntro.csprojAssemblyReference.cache and b/05 InterfaceIntro/obj/Debug/netcoreapp3.1/05 InterfaceIntro.csprojAssemblyReference.cache differ
diff --git a/05 UebgDi Warenwirtschaft/Program.cs b/05 UebgDi Warenwirtschaft/Program.cs
index c4e4636aed1491fc5f3dd62d71cd5b920298dd00..95bd8322a17965d8c6e812031207aabcf3d48973 100644
--- a/05 UebgDi Warenwirtschaft/Program.cs	
+++ b/05 UebgDi Warenwirtschaft/Program.cs	
@@ -16,6 +16,10 @@ namespace _05_UebgDi_Warenwirtschaft
     // Legen Sie in Main() ein Feld mit einem Objekt je Klasse an, geben Sie alle Elemente in einer Schleife aus
     // und schreiben Sie eine Methode, die z.B. nach der Pflanze über den Namen sucht und dieses Objekt zurückliefert
     // Rufen Sie dann für die Pflanze diese besondere Methode auf.
+    interface IBegiessbar
+    {
+        void Gießen();
+    }
     abstract class Produkt
     {
         int stueckzahl;
@@ -41,7 +45,7 @@ namespace _05_UebgDi_Warenwirtschaft
         public Gartenprodukte(int stückzahl, double preis, string name)
             : base(stückzahl, preis, name) { }
     }
-    class Pflanzen : Gartenprodukte
+    class Pflanzen : Gartenprodukte, IBegiessbar
     {
         public enum Pflanzentyp { zier, nutz};
         Pflanzentyp typ;
@@ -52,37 +56,56 @@ namespace _05_UebgDi_Warenwirtschaft
         }
         public void Gießen() { }
     }
+    class Froesche : Produkt ,IBegiessbar
+    {
+        public Froesche(int stückzahl, double preis, string name)
+            : base(stückzahl, preis, name) { }
+        public void Gießen()
+        {
+            Console.WriteLine("Frosch wird begossen"); 
+        }
+    }
     class Program
     {
         static void Main(string[] args)
         {
-            Produkt[] produkte = new Produkt[3];
+            Produkt[] produkte = new Produkt[4];
             produkte[0] = new Pflanzen(10, 0.35, "Geranien", Pflanzen.Pflanzentyp.zier);
             produkte[1] = new Pflanzen(10, 0.55, "Salat", Pflanzen.Pflanzentyp.nutz);
-            produkte[2] = new Pflanzen(10, 0.55, "Karotten", Pflanzen.Pflanzentyp.nutz);
+            produkte[2] = new Froesche(100, 2.49, "Hopper");
+            produkte[3] = new Pflanzen(10, 0.55, "Karotten", Pflanzen.Pflanzentyp.nutz);
             foreach (Produkt item in produkte)
             {
-                if (item.Name == "Geranien")
-                {
-                    // item.Gießen();  -- Geht nicht, da der statische Typ die aufrufbaren Methoden def.
+                #region Typkonvertierungen
+                //if (item.Name == "Geranien")
+                //{
+                //    // item.Gießen();  -- Geht nicht, da der statische Typ die aufrufbaren Methoden def.
+
+                //    ((Pflanzen) item).Gießen();
+                //    // Typ-cast ~ item wird in eine Pflanzen-Referenz konvertiert. Falls dies nicht
+                //    // möglich ist, wird eine Exception geworfen
 
-                    ((Pflanzen) item).Gießen();
-                    // Typ-cast ~ item wird in eine Pflanzen-Referenz konvertiert. Falls dies nicht
-                    // möglich ist, wird eine Exception geworfen
+                //    (item as Pflanzen).Gießen();
+                //    Pflanzen p1 = item as Pflanzen;
+                //    if (p1 != null)
+                //        p1.Gießen();
+                //    // as ~ versuche item in eine Pflanzen-Referenz zu konvertieren. Falls dies nicht
+                //    // möglich ist, wird null zurückgegeben.
 
-                    (item as Pflanzen).Gießen();
-                    Pflanzen p1 = item as Pflanzen;
-                    if (p1 != null)
-                        p1.Gießen();
-                    // as ~ versuche item in eine Pflanzen-Referenz zu konvertieren. Falls dies nicht
-                    // möglich ist, wird null zurückgegeben.
+                //    if (item is Pflanzen) { }
+                //    // Testet, ob item in Pflanzenreferenz konvertierbar ist => bool-Ergebnis
+                //    if (item is Pflanzen p2)
+                //        p2.Gießen();
+                //    // Im Erfolgsfall befindet sich in p2 die Pflanzen-Referenz
+                //}
+                #endregion
+                //if (item is Pflanzen p2)
+                //    p2.Gießen();
+                //if (item is Froesche f2)
+                //    f2.Gießen();
+                if (item is IBegiessbar it2)
+                    it2.Gießen();
 
-                    if (item is Pflanzen) { }
-                    // Testet, ob item in Pflanzenreferenz konvertierbar ist => bool-Ergebnis
-                    if (item is Pflanzen p2)
-                        p2.Gießen();
-                    // Im Erfolgsfall befindet sich in p2 die Pflanzen-Referenz
-                }
             }
         }
     }
diff --git a/05Exceptions1/05Exceptions1.csproj b/05Exceptions1/05Exceptions1.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..ea4ccc4d85883ce655c1389f58f847e8dd341275
--- /dev/null
+++ b/05Exceptions1/05Exceptions1.csproj
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{BF8BDB6A-FA4E-4BDF-9375-78C886EA82F5}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>_06Ausnahmen</RootNamespace>
+    <AssemblyName>06Ausnahmen</AssemblyName>
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/05Exceptions1/App.config b/05Exceptions1/App.config
new file mode 100644
index 0000000000000000000000000000000000000000..731f6de6c291e303814b02808f34140fe560e8e4
--- /dev/null
+++ b/05Exceptions1/App.config
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
+    </startup>
+</configuration>
\ No newline at end of file
diff --git a/05Exceptions1/Program.cs b/05Exceptions1/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..74eed3a5837825c289a9cd2fc1fe1970b4b5aa54
--- /dev/null
+++ b/05Exceptions1/Program.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace _06Ausnahmen
+{
+    class MeineFehlerKlasse : ArgumentOutOfRangeException
+    {
+        public int fehlerwert;
+        public MeineFehlerKlasse(string Fehlertext, int Fehlerwert) 
+            : base(Fehlertext) 
+        { fehlerwert = Fehlerwert; }
+    }
+    class Program
+    {
+        static void funktion()
+        {
+            if (1 < 2)
+                throw new MeineFehlerKlasse("Argumente außerhalb des Wertebereichs",2);
+        }
+        static void Main(string[] args)
+        {
+            try
+            {
+                try
+                {
+                    // Datei öffnen
+                    funktion();
+                    // Datei lesen
+                    // Datei schließen
+                }
+                // Bei den Catches: 
+                // Die spezifischeren Catches müssen vor den allgemeineren Catches stehen
+                catch (MeineFehlerKlasse e)
+                {
+                    Console.WriteLine($"Fehler: {e.Message}, {e.fehlerwert }");
+                    throw;   // throw (ohne Parameter) wirft das gefangene Fehlerobjekt weiter
+                             // an den übergeordneten try-catch-Block
+                }
+                catch (ArgumentOutOfRangeException)
+                {
+                    Console.WriteLine("Argumente haben den falschen Wertebereich");
+                }
+                finally
+                {
+                    Console.WriteLine("Dieser Code wird immer ausgeführt");
+                    // Zum Beispiel Dateien schließen, Ressourcen freigeben
+                    // Bei ...
+                    // Fehlerfreier Ausführung des try-Blocks
+                    // Fehlerhafter Ausführung des try-Blockks mit und ohne catch 
+                    //     (auch mit weiterem throw)
+                }
+            }
+            catch (Exception)
+            {
+                Console.WriteLine("Sonstiger Fehler");
+            }
+        }
+    }
+}
diff --git a/05Exceptions1/Properties/AssemblyInfo.cs b/05Exceptions1/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000000000000000000000000000000000..f32510a76e94921371212f5ee502bfd08bd3388f
--- /dev/null
+++ b/05Exceptions1/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Allgemeine Informationen über eine Assembly werden über die folgenden
+// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+// die einer Assembly zugeordnet sind.
+[assembly: AssemblyTitle("06Ausnahmen")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("06Ausnahmen")]
+[assembly: AssemblyCopyright("Copyright ©  2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
+// für COM-Komponenten unsichtbar.  Wenn Sie auf einen Typ in dieser Assembly von
+// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
+[assembly: ComVisible(false)]
+
+// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
+[assembly: Guid("bf8bdb6a-fa4e-4bdf-9375-78c886ea82f5")]
+
+// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+//
+//      Hauptversion
+//      Nebenversion
+//      Buildnummer
+//      Revision
+//
+// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
+// übernehmen, indem Sie "*" eingeben:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/05Exceptions1/bin/Debug/06Ausnahmen.exe b/05Exceptions1/bin/Debug/06Ausnahmen.exe
new file mode 100644
index 0000000000000000000000000000000000000000..850f8ca71585f14b073bea3681879f788cd6e019
Binary files /dev/null and b/05Exceptions1/bin/Debug/06Ausnahmen.exe differ
diff --git a/05Exceptions1/bin/Debug/06Ausnahmen.exe.config b/05Exceptions1/bin/Debug/06Ausnahmen.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..731f6de6c291e303814b02808f34140fe560e8e4
--- /dev/null
+++ b/05Exceptions1/bin/Debug/06Ausnahmen.exe.config
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
+    </startup>
+</configuration>
\ No newline at end of file
diff --git a/05Exceptions1/bin/Debug/06Ausnahmen.pdb b/05Exceptions1/bin/Debug/06Ausnahmen.pdb
new file mode 100644
index 0000000000000000000000000000000000000000..c64ec9666ff9f5b5a912d3e810aaef96d9fd08b2
Binary files /dev/null and b/05Exceptions1/bin/Debug/06Ausnahmen.pdb differ
diff --git a/05Exceptions1/obj/Debug/06Ausnahmen.csproj.CoreCompileInputs.cache b/05Exceptions1/obj/Debug/06Ausnahmen.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000000000000000000000000000000000000..f058f8f73186821e1fc99094a00066c33561bf64
--- /dev/null
+++ b/05Exceptions1/obj/Debug/06Ausnahmen.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+3a726c1e7b768d1c5a5822622b796cc3500f5e78
diff --git a/05Exceptions1/obj/Debug/06Ausnahmen.csproj.FileListAbsolute.txt b/05Exceptions1/obj/Debug/06Ausnahmen.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2bae9215920825858ea7ed2309a8e3b340f0af76
--- /dev/null
+++ b/05Exceptions1/obj/Debug/06Ausnahmen.csproj.FileListAbsolute.txt
@@ -0,0 +1,6 @@
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Ausnahmen\bin\Debug\06Ausnahmen.exe.config
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Ausnahmen\bin\Debug\06Ausnahmen.exe
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Ausnahmen\bin\Debug\06Ausnahmen.pdb
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Ausnahmen\obj\Debug\06Ausnahmen.csproj.CoreCompileInputs.cache
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Ausnahmen\obj\Debug\06Ausnahmen.exe
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Ausnahmen\obj\Debug\06Ausnahmen.pdb
diff --git a/05Exceptions1/obj/Debug/06Ausnahmen.csprojAssemblyReference.cache b/05Exceptions1/obj/Debug/06Ausnahmen.csprojAssemblyReference.cache
new file mode 100644
index 0000000000000000000000000000000000000000..45626195527e115a6385047593cd15f03b3536e6
Binary files /dev/null and b/05Exceptions1/obj/Debug/06Ausnahmen.csprojAssemblyReference.cache differ
diff --git a/05Exceptions1/obj/Debug/06Ausnahmen.exe b/05Exceptions1/obj/Debug/06Ausnahmen.exe
new file mode 100644
index 0000000000000000000000000000000000000000..850f8ca71585f14b073bea3681879f788cd6e019
Binary files /dev/null and b/05Exceptions1/obj/Debug/06Ausnahmen.exe differ
diff --git a/05Exceptions1/obj/Debug/06Ausnahmen.pdb b/05Exceptions1/obj/Debug/06Ausnahmen.pdb
new file mode 100644
index 0000000000000000000000000000000000000000..c64ec9666ff9f5b5a912d3e810aaef96d9fd08b2
Binary files /dev/null and b/05Exceptions1/obj/Debug/06Ausnahmen.pdb differ
diff --git a/05Exceptions1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/05Exceptions1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000000000000000000000000000000000000..f8cda2caa08082d4dddaee19d9328969cf66cd14
Binary files /dev/null and b/05Exceptions1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/05Exceptions1/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/05Exceptions1/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/05Exceptions1/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/05Exceptions1/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/05Exceptions1/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/05Exceptions1/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/05Exceptions1/obj/Release/06Ausnahmen.csproj.CoreCompileInputs.cache b/05Exceptions1/obj/Release/06Ausnahmen.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000000000000000000000000000000000000..f058f8f73186821e1fc99094a00066c33561bf64
--- /dev/null
+++ b/05Exceptions1/obj/Release/06Ausnahmen.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+3a726c1e7b768d1c5a5822622b796cc3500f5e78
diff --git a/05Exceptions2/05Exceptions2.csproj b/05Exceptions2/05Exceptions2.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..c6d5d64fe81928aff98456dc592f61b17251cac0
--- /dev/null
+++ b/05Exceptions2/05Exceptions2.csproj
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{53ED5B45-614B-464A-BED8-7361A5E2D5F5}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>_06Exceptions</RootNamespace>
+    <AssemblyName>06Exceptions</AssemblyName>
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/05Exceptions2/App.config b/05Exceptions2/App.config
new file mode 100644
index 0000000000000000000000000000000000000000..731f6de6c291e303814b02808f34140fe560e8e4
--- /dev/null
+++ b/05Exceptions2/App.config
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
+    </startup>
+</configuration>
\ No newline at end of file
diff --git a/05Exceptions2/Program.cs b/05Exceptions2/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..a4fbf41d2e42fd9678e504cfede6e933a410780a
--- /dev/null
+++ b/05Exceptions2/Program.cs
@@ -0,0 +1,111 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace _06Exceptions
+{
+    class Program
+    {
+        class Quadrierfehler : ArgumentOutOfRangeException
+        {
+            public Quadrierfehler(string Fehlertext) : base(Fehlertext) { }
+        }
+        static int funktion2(int x)
+        {
+            if (x < 0)
+                throw new ArgumentOutOfRangeException("Fehler in funktion2");
+            return x * x * x;
+        }
+        static int funktion(int x)
+        {
+            funktion2(x);
+            if (x < 0)
+                throw new Quadrierfehler("So nicht!!!");
+            if (x == 0)
+                throw new ArgumentOutOfRangeException("Argument darf nicht null sein");
+            return x * x;
+
+        }
+        static void Main(string[] args)
+        {
+            try
+            {
+                funktion(-3);
+                funktion(-2);
+            }
+            catch (Quadrierfehler q)
+            {
+                Console.WriteLine("Quadrierfehler");
+            }
+            catch (ArgumentOutOfRangeException e)
+            {
+                Console.WriteLine(e.Message);
+                Console.WriteLine("--------");
+                throw;    // Weiterwerfen der Exception
+            }
+            //catch (Exception e)
+            //{
+            //    Console.WriteLine("Allgemeiner Fehler");
+            //}
+            finally { }     // Code wird IMMER durchlaufen!
+
+
+            // Unterschied zwischen
+            //    try
+            //    {
+            //        doSomething();
+            //    }
+            //    catch
+            //    {
+            //        catchSomething();
+            //    }
+            //    finally
+            //    {
+            //        alwaysDoThis();
+            //    }
+
+            //  und ...
+
+            //    try
+            //    {
+            //        doSomething();
+            //    }
+            //    catch
+            //    {
+            //        catchSomething();
+            //        throw;
+            //        return;
+            //    }
+
+            //    alwaysDoThis();
+        }
+
+
+        static void Main1(string[] args)
+        {
+            try
+            {
+                try
+                {
+                    Console.WriteLine("foo");
+                    throw new Exception("exception");   //error occurs here
+                }
+                catch (Exception)
+                {
+                    Console.WriteLine("foo - catch");
+                    throw;
+                }
+                finally   //will execute this as it is the first exception statement
+                {
+                    Console.WriteLine("foo's finally called");
+                }
+            }
+            catch (Exception e)  // then this
+            {
+                Console.WriteLine("Exception caught. Message: " + e.Message);
+            }
+        }
+    }
+}
diff --git a/05Exceptions2/Properties/AssemblyInfo.cs b/05Exceptions2/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000000000000000000000000000000000..d555792ea1e9f8b91db291bb1945b83f8c9172f9
--- /dev/null
+++ b/05Exceptions2/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Allgemeine Informationen über eine Assembly werden über die folgenden
+// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+// die einer Assembly zugeordnet sind.
+[assembly: AssemblyTitle("06Exceptions")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("06Exceptions")]
+[assembly: AssemblyCopyright("Copyright ©  2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
+// für COM-Komponenten unsichtbar.  Wenn Sie auf einen Typ in dieser Assembly von
+// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
+[assembly: ComVisible(false)]
+
+// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
+[assembly: Guid("53ed5b45-614b-464a-bed8-7361a5e2d5f5")]
+
+// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+//
+//      Hauptversion
+//      Nebenversion
+//      Buildnummer
+//      Revision
+//
+// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
+// übernehmen, indem Sie "*" eingeben:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/05Exceptions2/bin/Debug/06Exceptions.exe b/05Exceptions2/bin/Debug/06Exceptions.exe
new file mode 100644
index 0000000000000000000000000000000000000000..1c931a651d727e094f7cde80df0e05dbfdba8543
Binary files /dev/null and b/05Exceptions2/bin/Debug/06Exceptions.exe differ
diff --git a/05Exceptions2/bin/Debug/06Exceptions.exe.config b/05Exceptions2/bin/Debug/06Exceptions.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..731f6de6c291e303814b02808f34140fe560e8e4
--- /dev/null
+++ b/05Exceptions2/bin/Debug/06Exceptions.exe.config
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
+    </startup>
+</configuration>
\ No newline at end of file
diff --git a/05Exceptions2/bin/Debug/06Exceptions.pdb b/05Exceptions2/bin/Debug/06Exceptions.pdb
new file mode 100644
index 0000000000000000000000000000000000000000..f93ee2d1d5938f11c64187fd3f541c87511c97ae
Binary files /dev/null and b/05Exceptions2/bin/Debug/06Exceptions.pdb differ
diff --git a/05Exceptions2/obj/Debug/06Exceptions.csproj.CoreCompileInputs.cache b/05Exceptions2/obj/Debug/06Exceptions.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000000000000000000000000000000000000..f058f8f73186821e1fc99094a00066c33561bf64
--- /dev/null
+++ b/05Exceptions2/obj/Debug/06Exceptions.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+3a726c1e7b768d1c5a5822622b796cc3500f5e78
diff --git a/05Exceptions2/obj/Debug/06Exceptions.csproj.FileListAbsolute.txt b/05Exceptions2/obj/Debug/06Exceptions.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000000000000000000000000000000000000..331ac9579502b0dd88fddebfb7385e21dad97de4
--- /dev/null
+++ b/05Exceptions2/obj/Debug/06Exceptions.csproj.FileListAbsolute.txt
@@ -0,0 +1,6 @@
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Exceptions\bin\Debug\06Exceptions.exe.config
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Exceptions\bin\Debug\06Exceptions.exe
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Exceptions\bin\Debug\06Exceptions.pdb
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Exceptions\obj\Debug\06Exceptions.csproj.CoreCompileInputs.cache
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Exceptions\obj\Debug\06Exceptions.exe
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Exceptions\obj\Debug\06Exceptions.pdb
diff --git a/05Exceptions2/obj/Debug/06Exceptions.exe b/05Exceptions2/obj/Debug/06Exceptions.exe
new file mode 100644
index 0000000000000000000000000000000000000000..1c931a651d727e094f7cde80df0e05dbfdba8543
Binary files /dev/null and b/05Exceptions2/obj/Debug/06Exceptions.exe differ
diff --git a/05Exceptions2/obj/Debug/06Exceptions.pdb b/05Exceptions2/obj/Debug/06Exceptions.pdb
new file mode 100644
index 0000000000000000000000000000000000000000..f93ee2d1d5938f11c64187fd3f541c87511c97ae
Binary files /dev/null and b/05Exceptions2/obj/Debug/06Exceptions.pdb differ
diff --git a/05Exceptions2/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/05Exceptions2/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000000000000000000000000000000000000..dcbdbccaa9e70369577699b79ab3417b77953d19
Binary files /dev/null and b/05Exceptions2/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/05Exceptions2/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/05Exceptions2/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/05Exceptions2/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/05Exceptions2/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/05Exceptions2/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/05Exceptions2/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/05Exceptions2/obj/Release/06Exceptions.csproj.CoreCompileInputs.cache b/05Exceptions2/obj/Release/06Exceptions.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000000000000000000000000000000000000..f058f8f73186821e1fc99094a00066c33561bf64
--- /dev/null
+++ b/05Exceptions2/obj/Release/06Exceptions.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+3a726c1e7b768d1c5a5822622b796cc3500f5e78
diff --git a/05Exceptions_Beispiel/05Exceptions_Beispiel.csproj b/05Exceptions_Beispiel/05Exceptions_Beispiel.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..0c7e44685fa1a41996c3da25bbd9765c7e8cbe36
--- /dev/null
+++ b/05Exceptions_Beispiel/05Exceptions_Beispiel.csproj
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{EB3B0F38-335C-489E-882A-C7C6A23AFF99}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>_06Exception_Beispiel</RootNamespace>
+    <AssemblyName>06Exception_Beispiel</AssemblyName>
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/05Exceptions_Beispiel/App.config b/05Exceptions_Beispiel/App.config
new file mode 100644
index 0000000000000000000000000000000000000000..731f6de6c291e303814b02808f34140fe560e8e4
--- /dev/null
+++ b/05Exceptions_Beispiel/App.config
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
+    </startup>
+</configuration>
\ No newline at end of file
diff --git a/05Exceptions_Beispiel/Program.cs b/05Exceptions_Beispiel/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..593c5b157626a873be52362377f07b51f21535eb
--- /dev/null
+++ b/05Exceptions_Beispiel/Program.cs
@@ -0,0 +1,55 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace _06Exception_Beispiel
+{
+    class Program
+    {
+        class MyClass
+        {
+            public MyClass()
+            {
+                try
+                {
+                    MyMethod();
+                    Console.Write("A");
+                }
+                catch (DivideByZeroException) { Console.Write("B"); }
+                catch (NullReferenceException) { Console.Write("C"); }
+                catch (IndexOutOfRangeException) { Console.Write("D"); }
+                catch (Exception) { Console.Write("E"); }
+                Console.Write("F");
+            }
+
+            public void MyClassMethod() { Console.Write("X"); }
+        }
+
+        static void MyMethod()
+        {
+            try
+            {
+                int[] values = new int[] { 5, 6, 7, 0 };
+                MyClass myClass = null;
+                Console.Write(values[3] / values[0]);
+                Console.Write(values[0]);
+                myClass.MyClassMethod();
+            }
+            catch (DivideByZeroException e) { Console.Write("1"); throw e; }
+            catch (IndexOutOfRangeException e) { Console.Write("2"); throw e; }
+            finally { Console.Write("3"); }
+            Console.Write("4");
+        }
+
+        static void Main()
+        {
+            MyClass myClass = new MyClass();
+            myClass.MyClassMethod();
+            Console.WriteLine("Z");
+        }
+    }
+
+
+}
diff --git a/05Exceptions_Beispiel/Properties/AssemblyInfo.cs b/05Exceptions_Beispiel/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000000000000000000000000000000000..080b2c65a1f97d908b6932f3c7e724599ea3b072
--- /dev/null
+++ b/05Exceptions_Beispiel/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Allgemeine Informationen über eine Assembly werden über die folgenden
+// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+// die einer Assembly zugeordnet sind.
+[assembly: AssemblyTitle("06Exception_Beispiel")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("06Exception_Beispiel")]
+[assembly: AssemblyCopyright("Copyright ©  2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
+// für COM-Komponenten unsichtbar.  Wenn Sie auf einen Typ in dieser Assembly von
+// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
+[assembly: ComVisible(false)]
+
+// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
+[assembly: Guid("eb3b0f38-335c-489e-882a-c7c6a23aff99")]
+
+// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+//
+//      Hauptversion
+//      Nebenversion
+//      Buildnummer
+//      Revision
+//
+// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
+// übernehmen, indem Sie "*" eingeben:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/05Exceptions_Beispiel/bin/Debug/06Exception_Beispiel.exe b/05Exceptions_Beispiel/bin/Debug/06Exception_Beispiel.exe
new file mode 100644
index 0000000000000000000000000000000000000000..f765ba273fe64f733cf73b4e9acd0c76496503cb
Binary files /dev/null and b/05Exceptions_Beispiel/bin/Debug/06Exception_Beispiel.exe differ
diff --git a/05Exceptions_Beispiel/bin/Debug/06Exception_Beispiel.exe.config b/05Exceptions_Beispiel/bin/Debug/06Exception_Beispiel.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..731f6de6c291e303814b02808f34140fe560e8e4
--- /dev/null
+++ b/05Exceptions_Beispiel/bin/Debug/06Exception_Beispiel.exe.config
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
+    </startup>
+</configuration>
\ No newline at end of file
diff --git a/05Exceptions_Beispiel/bin/Debug/06Exception_Beispiel.pdb b/05Exceptions_Beispiel/bin/Debug/06Exception_Beispiel.pdb
new file mode 100644
index 0000000000000000000000000000000000000000..c9c2a48da0801d2fb903f11be43da3c401e6f923
Binary files /dev/null and b/05Exceptions_Beispiel/bin/Debug/06Exception_Beispiel.pdb differ
diff --git a/05Exceptions_Beispiel/obj/Debug/05Exceptions_Beispiel.csprojAssemblyReference.cache b/05Exceptions_Beispiel/obj/Debug/05Exceptions_Beispiel.csprojAssemblyReference.cache
new file mode 100644
index 0000000000000000000000000000000000000000..36b065788a31d4517cad6b455e601669f31fdc81
Binary files /dev/null and b/05Exceptions_Beispiel/obj/Debug/05Exceptions_Beispiel.csprojAssemblyReference.cache differ
diff --git a/05Exceptions_Beispiel/obj/Debug/06Exception_Beispiel.csproj.CoreCompileInputs.cache b/05Exceptions_Beispiel/obj/Debug/06Exception_Beispiel.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000000000000000000000000000000000000..f058f8f73186821e1fc99094a00066c33561bf64
--- /dev/null
+++ b/05Exceptions_Beispiel/obj/Debug/06Exception_Beispiel.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+3a726c1e7b768d1c5a5822622b796cc3500f5e78
diff --git a/05Exceptions_Beispiel/obj/Debug/06Exception_Beispiel.csproj.FileListAbsolute.txt b/05Exceptions_Beispiel/obj/Debug/06Exception_Beispiel.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3da13a28e75343a5b9f3dc2a4bfcde20f3b770aa
--- /dev/null
+++ b/05Exceptions_Beispiel/obj/Debug/06Exception_Beispiel.csproj.FileListAbsolute.txt
@@ -0,0 +1,6 @@
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Exception_Beispiel\bin\Debug\06Exception_Beispiel.exe.config
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Exception_Beispiel\bin\Debug\06Exception_Beispiel.exe
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Exception_Beispiel\bin\Debug\06Exception_Beispiel.pdb
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Exception_Beispiel\obj\Debug\06Exception_Beispiel.csproj.CoreCompileInputs.cache
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Exception_Beispiel\obj\Debug\06Exception_Beispiel.exe
+C:\Users\TH-Nürnberg\Source\Repos\Prog2-SS2018-Wienkop2\Prog2_SS2018\06Exception_Beispiel\obj\Debug\06Exception_Beispiel.pdb
diff --git a/05Exceptions_Beispiel/obj/Debug/06Exception_Beispiel.exe b/05Exceptions_Beispiel/obj/Debug/06Exception_Beispiel.exe
new file mode 100644
index 0000000000000000000000000000000000000000..f765ba273fe64f733cf73b4e9acd0c76496503cb
Binary files /dev/null and b/05Exceptions_Beispiel/obj/Debug/06Exception_Beispiel.exe differ
diff --git a/05Exceptions_Beispiel/obj/Debug/06Exception_Beispiel.pdb b/05Exceptions_Beispiel/obj/Debug/06Exception_Beispiel.pdb
new file mode 100644
index 0000000000000000000000000000000000000000..c9c2a48da0801d2fb903f11be43da3c401e6f923
Binary files /dev/null and b/05Exceptions_Beispiel/obj/Debug/06Exception_Beispiel.pdb differ
diff --git a/05Exceptions_Beispiel/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/05Exceptions_Beispiel/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000000000000000000000000000000000000..9c37a92d0b0e4bba8ff2ed155aca237227830076
Binary files /dev/null and b/05Exceptions_Beispiel/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/05Exceptions_Beispiel/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/05Exceptions_Beispiel/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/05Exceptions_Beispiel/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/05Exceptions_Beispiel/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/05Exceptions_Beispiel/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/05Exceptions_Beispiel/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/05Exceptions_Beispiel/obj/Release/06Exception_Beispiel.csproj.CoreCompileInputs.cache b/05Exceptions_Beispiel/obj/Release/06Exception_Beispiel.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000000000000000000000000000000000000..f058f8f73186821e1fc99094a00066c33561bf64
--- /dev/null
+++ b/05Exceptions_Beispiel/obj/Release/06Exception_Beispiel.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+3a726c1e7b768d1c5a5822622b796cc3500f5e78
diff --git a/prog2-ss2020-wienkop.sln b/prog2-ss2020-wienkop.sln
index c63c1173f0663822d57f448211deba0140cec972..3ed7bffe3634bb3bf2e718e81f1afc202aef6050 100644
--- a/prog2-ss2020-wienkop.sln
+++ b/prog2-ss2020-wienkop.sln
@@ -54,9 +54,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "05 UebgMo Warenwirtschaft",
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "03Praktikumsaufgabe2Liste", "03Praktikumsaufgabe2Liste\03Praktikumsaufgabe2Liste.csproj", "{AD4DC06B-7331-4024-8420-F324A6DF20A3}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "05 UebgDi Warenwirtschaft", "05 UebgDi Warenwirtschaft\05 UebgDi Warenwirtschaft.csproj", "{5CAE2147-F5ED-4D54-9FF0-87E7A5AB8AD1}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "05 UebgDi Warenwirtschaft", "05 UebgDi Warenwirtschaft\05 UebgDi Warenwirtschaft.csproj", "{5CAE2147-F5ED-4D54-9FF0-87E7A5AB8AD1}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "05 InterfaceIntro", "05 InterfaceIntro\05 InterfaceIntro.csproj", "{2AB3F908-3175-4309-AE0B-F04BA243A82B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "05 InterfaceIntro", "05 InterfaceIntro\05 InterfaceIntro.csproj", "{2AB3F908-3175-4309-AE0B-F04BA243A82B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "05Exceptions_Beispiel", "05Exceptions_Beispiel\05Exceptions_Beispiel.csproj", "{EB3B0F38-335C-489E-882A-C7C6A23AFF99}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "05Exceptions1", "05Exceptions1\05Exceptions1.csproj", "{BF8BDB6A-FA4E-4BDF-9375-78C886EA82F5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "05Exceptions2", "05Exceptions2\05Exceptions2.csproj", "{53ED5B45-614B-464A-BED8-7361A5E2D5F5}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -164,6 +170,18 @@ Global
 		{2AB3F908-3175-4309-AE0B-F04BA243A82B}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{2AB3F908-3175-4309-AE0B-F04BA243A82B}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{2AB3F908-3175-4309-AE0B-F04BA243A82B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{EB3B0F38-335C-489E-882A-C7C6A23AFF99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{EB3B0F38-335C-489E-882A-C7C6A23AFF99}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{EB3B0F38-335C-489E-882A-C7C6A23AFF99}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{EB3B0F38-335C-489E-882A-C7C6A23AFF99}.Release|Any CPU.Build.0 = Release|Any CPU
+		{BF8BDB6A-FA4E-4BDF-9375-78C886EA82F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{BF8BDB6A-FA4E-4BDF-9375-78C886EA82F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{BF8BDB6A-FA4E-4BDF-9375-78C886EA82F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{BF8BDB6A-FA4E-4BDF-9375-78C886EA82F5}.Release|Any CPU.Build.0 = Release|Any CPU
+		{53ED5B45-614B-464A-BED8-7361A5E2D5F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{53ED5B45-614B-464A-BED8-7361A5E2D5F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{53ED5B45-614B-464A-BED8-7361A5E2D5F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{53ED5B45-614B-464A-BED8-7361A5E2D5F5}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE