2017-06-26 4 views
-3

Ich habe eine Aufgabe zur Umsetzung Fehlerbehandlung in meiner App gegeben - jede Zeile des Codes muss auf Fehlerbehandlung überprüft werden. Mein Freund (der einen Hintergrund von Java hat) riet mir, jede einzelne Methodendefinition in try-catch Blöcke zu setzen; was ist nicht möglich in Swift. Wie können wir versuchen, nur diejenigen Methoden, die werfen sind. Also muss ich alle meine Methoden zu werfen und wenn ja, wie würde ich Ausnahmen, die ich nicht bewusst, wie das ist, was wir erreichen wollen. Also wie kann ich mein gesamtes Projekt bei der Fehlerbehandlung abdecken?Bedecken Sie jede Zeile meines Codes in try catch Block

Außerdem bin ich auch von der Tatsache, zweifelhaft, dass Swift Schecks tut für

„fatale Fehler: Unerwartet nil‘ Ausnahmen und Array aus gebundenen Ausnahmen gefunden

.

Bitte, helfen Sie mir durch diese!

Antwort

1

Ja können Sie nur etwas fangen, das Fehler werfen kann. Howe Ver, es gibt keine Notwendigkeit, jede Zeile Code zu fangen. Wenn Sie nur eine Variable erstellen und einen Wert zuweisen, sollte es keine Ausnahmen geben. Es stimmt auch, dass in Ihrem Code, wenn eine Ausnahme aufgetreten ist, der Rest des Codes nicht ausgeführt werden sollte. In dieser Situation brauchen Sie nur einen großen Versuch zu fangen und den Benutzer zu informieren, wenn er im Ausnahmebehandlungsblock schief geht.

Swift überprüft nicht, ob die Force-Unwrap- oder Index-Out-of-Bound-Funktion ausgeführt wird. Es bietet Ihnen die Möglichkeit, Null und Index mit guard let oder if let zu überprüfen, aber Sie sind für diese Überprüfung verantwortlich.

+0

Nun, ich muss sagen Swift dann Codes für ziemlich ideale Szenarien, die nicht in realen Codierung passieren. Es muss eine Bestimmung geben, um Code-Blöcke in einen try catch zu setzen, und nicht nur auf Methoden, von denen der Benutzer glaubt, dass sie sie werfen. Entwickler denken manchmal nicht über ein Szenario nach, das auftreten könnte, und versuchen zu diesem Zeitpunkt, den Fang zu retten. – Akaanksha

+0

@Akaanksha Sicher, ja du kannst das tun und alle Ausnahmen abfangen. Sie wissen, wie die Versuchssyntax funktioniert, oder? –

+0

Ja, das tue ich. Ich habe etwas ähnlich wie Java oder .net versucht Blöcke, die alle Ausnahme abfängt, unabhängig davon, ob die Methoden werfen oder nicht. – Akaanksha

Verwandte Themen