Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Visual Studio 2017: Neue Funktionen

Exception Helper

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Dieser Film zeigt, wie Sie mit dem neuen Exception Helper bei der Fehlersuche schneller ans Ziel kommen. Neben der neuen Darstellung der geschachtelten Ausnahmen geht der Trainer auch auf die verbesserte Fehleranalyse bei NullReferenceExceptions ein.
06:42

Transkript

Im Code, den Sie hier vor sich sehen, führe ich eine Division durch 0 durch, indem ich hier eine Variable mit dem Namen x deklariere, die bekommt den Wert 0 und anschließend dividiere ich drei durch x, bedeutet also, ich werde hier eine Operation ausführen, die nicht gültig ist. In so einem Fall erhalten wir eine Ausnahme oder Exception. Und wenn wir uns daran erinnern, wie das in älteren Visual Studio-Versionen aussah, dann haben wir hier ein sehr großes Fenster mit sehr vielen Informationen bekommen, das auch nicht immer hilfreich war. Dieses Fenster war dann auch fest angepinnt an dieser Codezeile, bedeutet, wenn wir den Code, der umliegend war, analysieren wollten, war das nicht immer leicht. In Visual Studio 2017 sieht es nun etwas anders aus. Und das gucken wir uns einmal an. Ich werde also den Code einmal ausführen, und jetzt haben wir hier unsere Exception, und was auffällt, ist zum einen, dass das Fenster jetzt kleiner ist als vorher. Ich bekomme hier nur noch relevante Informationen, nämlich, welche Exception habe ich und was ist die Nachricht dieser Exception. Natürlich kann ich mir weitere Informationen immer noch anzeigen lassen, indem ich hier auf "Details anzeigen" klicke. Ich habe darüber hinaus aber auch die Möglichkeit, dieses Fenster in der Position zu verschieben. Schauen Sie mal. Ich schiebe jetzt mal hier meinen Text etwas runter und wieder hoch, weil ich mir den umliegenden Code vielleicht angucken muss, um den Fehler besser zu verstehen, und sobald ich aus der Exception raus scrolle, verschwindet auch das Fenster mit den Details. Vielleicht ist das für mich aber noch wichtig und deswegen habe ich hier jetzt die Möglichkeit, dieses Fenster entsprechend abzupinnen, von der Position her. Jetzt kann ich das irgendwo positionieren, wo es für mich sinnvoll ist, zum Beispiel hier oben. Wenn ich mich jetzt durch meinen Code bewege, dann bleibt dieses Fenster immer hier, und ich kann jetzt hier genau analysieren, was mein Problem war und habe immer noch die eigentliche Ausnahme mit im Blick. Wenn ich jetzt möchte, dass das Ganze wieder hier unten ist, dann gehe ich einfach hin und pinne mir das wieder an. Die Position des Fensters merkt sich Visual Studio übrigens, wenn ich jetzt wieder weg pinne, dann sehen wir, dass es da ist, wo ich es zuletzt hingeschoben habe. Was wir bisher gesehen haben, ist schon recht praktisch, aber nicht die einzige Neuerung im Bereich der Exceptions. Gucken wir uns einmal an, was passiert, wenn ich eine geschachtelte Ausnahme habe. Bedeutet also, ich habe eine Exception, die eine InnerException hat usw. In der Vergangenheit haben wir dann Folgendes gemacht, wir haben uns die Details angezeigt, haben dann hier in der InnerException, die in meinem Fall jetzt hier "Null" ist, das Ganze aufgeklappt und mussten uns im schlimmsten Fall über eine tiefe Hierarchie herunterbewegen, bis wir den eigentlichen Fehler gesehen haben. Das geht heute ein wenig leichter. Ich werde dazu einfach mal eine kleine Exception provozieren, und zwar habe ich hier eine Anwendung, die auf eine Datenbank zugreift und da ändere ich einfach mal den Connection String und werde sagen, dass es nicht mehr auf die Northwind-Datenbank geht, sondern auf die Nordwind-Datenbank, natürlich ist das falsch, denn die gibt es gar nicht bei mir im System, und wenn ich jetzt mein Programm starte, dann bekomme ich wieder eine Ausnahme und dieses Mal werden Sie sehen, dass innerhalb dieser Ausnahme ich eine Hierarchie erkennen kann, nämlich zwischen Exception und InnerException. So, hier ist auch die Ausnahme jetzt, und jetzt sehen wir hier, aha, wir haben eine "System.Data.Entity. Core.EntityException" mit diesem Text hier und es gibt eine Innerexception vom Typ "SqlException", mit dem Text "Cannot open database..." usw. Wenn Sie jetzt mehrere InnerExceptions hätten, weil Sie eine tiefere Hierarchie haben, dann würden Sie hier Schaltflächen haben, mit denen Sie sich nach links oder rechts bewegen können, um halt eben eine Hierarchie hoch oder runter zu gehen. Standardmäßig wird immer die tiefste InnerException angezeigt, die ja meistens das eigentliche Problem ist. In unserem Fall hier auch, nämlich, dass er die Nordwind-Datenbank gar nicht findet. So, ich werde den Fehler jetzt einmal schnell beheben, und dann zeige ich Ihnen die letzte Änderung im Bereich der Exceptions. Wenn wir hier einmal einen Blick in den Ordner "Models" werfen, dann sehen wir, dass es hier eine Klasse "Employees" gibt. Also Mitarbeiter. Und diese Mitarbeiter, die können wiederum einen Vorgesetzen haben, der auch vom Typ Mitarbeiter ist und der versteckt sich hier hinter der Eigenschaft "Employees2". In meinem Code werde ich jetzt einmal Folgendes machen, ich erzeuge einen neues Employees-Objekt, das mache ich gleich ganz am Anfang hier oben. Sage also "var e = new Employees", und jetzt werde ich auf die Managereigenschaft zugreifen, indem ich in einem "Console.WriteLine" einfach mal "(e.Employees2.LastName)" ausgebe. Das Ganze wird jetzt einen "NullReferenceException" geben, da nämlich die Eigenschaft "Employees2" nicht initialisiert wurde. Diese Exception die fürchten die meisten .NET-Entwickler, da sie in der Vergangenheit so wenig an Kontextinformationen mitgegeben hat. Bedeutet, wenn Sie sich vorstellen, Sie haben hier Variable.Eigenschaft.weitere Eigenschaft. weitere Eigenschaft. weitere Eigenschaft, die jeweils immer von einem komplexen Typ, sprich vom Typ eines Objekts sind und irgendeine dieser Eigenschaften ist zwischendrin "Null", dann bekommen Sie nur eine Exception, in der drin steht "NullReferenceException" in Zeile 31 z. B. Schauen wir uns jetzt einmal an, wie das in Visual Studio 2017 aussieht. Dazu starte ich meine Anwendung, der Fehler wird jetzt sehr schnell auftreten, da haben wir ihn schon, und wenn ich jetzt mir das Ganze ansehe, dann sehen Sie, ich habe hier eine "System.NullReferenceException". Wir sehen aber nicht nur, dass wir diese Exception haben, sondern, dass die Eigenschaft "Employees2" und dort der "Get"-er, dass die "Null" zurückgegeben hat, bedeutet, ich sehe jetzt sehr genau, welches meiner Felder "Null" war und habe somit eine viel bessere Möglichkeit, den Fehler zu analysieren. Alles in allem habe wir also einige sinnvolle Erweiterungen im Bereich der Ausnahmedarstellungen erhalten. Punkt Nummer 1 ist, das Fenster ist kleiner und ich kann es jetzt dorthin pinnen, wo ich es brauche. Ich kann es hier und her schieben, ich kann es wieder anpinnen an meinen Fehler, ich sehe nur das, was ich wirklich brauche auf den ersten Blick, nämlich welche Exception und der Text der Exception. Ich kann mir natürlich immer noch Details anzeigen, darüber hinaus sehe ich aber auch, welche InnerExceptions gab es in diesem Bereich hier oder im Fall einer "NullReferenceException" bekomme ich nun einen Hinweis darauf, was denn jetzt hier tatsächlich "Null" gewesen ist.

Visual Studio 2017: Neue Funktionen

Entdecken Sie die wichtigsten Neuerungen der aktuellen Version und nutzen Sie diese in der täglichen Entwicklungsarbeit.

1 Std. 42 min (27 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Visual Studio Visual Studio 2017
Exklusiv für Abo-Kunden
Ihr(e) Trainer:
Erscheinungsdatum:05.04.2017
Laufzeit:1 Std. 42 min (27 Videos)

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!