Heim Backend-Entwicklung C#.Net-Tutorial Kompilierung von C#-Grundkenntnissen: Ausnahme für Grundkenntnisse (13).

Kompilierung von C#-Grundkenntnissen: Ausnahme für Grundkenntnisse (13).

Feb 11, 2017 pm 01:29 PM

Wenn wir Code schreiben, stoßen wir während des Betriebs häufig auf bestimmte Probleme, die zum Absturz des Programms führen. Dies liegt nicht daran, dass das Programmierniveau nicht gut ist, sondern an Problemen mit der Geschäftslogik, dem Betriebssystem oder anderen Geräten wie Computern. Beispielsweise werden einige Methoden in user32.dll häufig in C# verwendet , Ihr Programm kann immer noch nicht ausgeführt werden. Als erfahrener Programmierer müssen Sie beim Schreiben eines Programms natürlich immer verschiedene Situationen berücksichtigen. Je höher das Niveau, desto mehr Situationen müssen Sie berücksichtigen und desto geringer ist die Wahrscheinlichkeit, dass Ihr Programm abstürzt besser die Robustheit.
Im Allgemeinen gibt es zwei Situationen, in denen das Programm nicht ausgeführt werden kann:
Eine davon ist ein Fehler. Dazu gehören Umgebungsfehler (z. B. fehlende Dateien, falscher Dateiinhalt, was zu Inkonsistenzen mit Programmkonventionen führt, nicht unterstützte Systemversionen usw.); ist im Allgemeinen Prozessfehler führen zu falschen Ergebnissen im Programm usw.);
Das zweite sind Ausnahmen. Eine Ausnahme bedeutet, dass das Programm aufgrund von Faktoren im aktuellen Prozess oder unerwartetem Verhalten nicht ausgeführt werden kann. Im Allgemeinen umfassen:
Illegale Vorgänge, falsche Eingaben durch den Benutzer, abnormale Eingaben und Ausgaben, nicht hardwarebedingte Probleme beim Zugriff auf externe Geräte, z. B. beim Lesen und Schreiben von Festplatten. Das Ergebnis ist, dass externe virtuelle optische Laufwerke, Disketten usw. usw. werden auch als Festplatten verwendet, oder Es gibt kein Problem mit dem Programm selbst, aber es werden immer noch Fehler gemeldet, wenn die Speicherzuordnung beim Lesen und Schreiben von der Festplatte abnormal ist und wenn der Speicher nicht ausreicht, können keine neuen Objekte erstellt werden.
Im Allgemeinen gibt es einen wesentlichen Unterschied zwischen Fehlern und Ausnahmen. Sobald Fehler auftreten, müssen sie geändert werden, und die Betriebsumgebung muss auf jeden Fall geändert werden Das Programm ist mehr oder weniger Alle Arten von Ausnahmen werden auftreten. Wenn Ausnahmen auftreten, muss das Programm Ausnahmen behandeln, aber Ausnahmen sollten den weiteren Betrieb des Programms nicht beeinträchtigen. Korrigieren Sie Fehler, sobald sie auftreten. Werfen wir einen Blick auf die Ausnahmebehandlung in C#.
Um sicherzustellen, dass das Programm keine Fehler macht, werden im Allgemeinen viele Urteile gefällt, wenn...sonst, aber ein weiser Mann wird nach sorgfältiger Überlegung Fehler machen. Selbst ein großartiger Mensch kann das Programm nicht machen umfassend und denken Sie an alle Situationen. Auf diese Weise sollten wir die Ausnahmebehandlung in C# verwenden. C# verwendet ein Catch-and-Throw-Modell zur Behandlung von Ausnahmen. Wenn im Programm eine Ausnahme auftritt, wird das Ausnahmeobjekt an der Stelle erfasst, an der die Ausnahme behandelt wird. Was geworfen wird, ist ein Objekt der Exception-Klasse oder ihrer Unterklasse, wie zum Beispiel:
ArgumentException: Diese Ausnahme wird geworfen, wenn der Parameter unzulässig ist.
ArgumentNullException: Diese Ausnahme wird ausgelöst, wenn der Parameter null ist.
ArgumentOutOfRangeException: Diese Ausnahme wird ausgelöst, wenn der Parameter den zulässigen Bereich überschreitet.
Das Format zum Erfassen von Ausnahmen ist wie folgt:

            try
            {
                //代码段
            }
            catch (Exception ex)
            {
                //处理异常
            }
            finally
            {
                //最后一定执行的
            }
Nach dem Login kopieren

Der Try-Codeblock enthält Code, der Ausnahmen verursachen kann. Sie können das Schlüsselwort throw verwenden, um Ausnahmen auszulösen, oder Sie können auf beliebige Eigenschaften oder Methoden zugreifen ;
Der Catch-Codeblock wird zum Erfassen der abzufangenden Ausnahme verwendet und enthält den Code zur Behandlung der Ausnahme.
Der Codeblock stellt schließlich das Codesegment dar, das nach Abschluss der Ausnahmebehandlung ausgeführt wird. Das heißt, das Codesegment in „final“ wird immer zuletzt ausgeführt, unabhängig davon, ob die Ausnahme abgefangen wird.
Sehen Sie sich die folgenden Codeteile an:
Von Exception geerbt und verstehen Sie intuitiv die Exception-Klasse:

  public class MySelfException : Exception
    {
        /// <summary>
        /// 默认构造器
        /// </summary>
        public MySelfException()

            : base()
        {

        }
        /// <summary>
        /// 提供一个string类型的参数构造器,可设置自定义信息
        /// </summary>
        /// <param name="message"></param>
        public MySelfException(string message)

            : base(message)
        {

        }

        /// <summary>
        /// 用于传入异常信息,另外可以传入该异常有哪个其它异常引发的
        /// </summary>
        /// <param name="message"></param>
        /// <param name="innerException"></param>
        public MySelfException(string message, Exception innerException)

            : base(message, innerException)
        {

        }
        /// <summary>
        /// 覆盖Message属性,返回经过处理的异常信息
        /// </summary>
        public override string Message
        {
            get
            {
                return "有异常:" + base.Message;
            }
        }
    }
Nach dem Login kopieren

Sehen Sie sich den Prozess des Fangens und Werfens an:

  public class Exceptions
    {
        public static void PersonInfo(string name, char sex, int age)
        {
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException("name");
            }

            if (sex != &#39;男&#39; && sex != &#39;女&#39;)
            {
                throw new ArgumentException("sex只能为“男”或“女”");
            }

            if (age <= 0 || age >= 150)
            {
                throw new ArgumentOutOfRangeException("age");
            }

            Console.WriteLine(string.Format(@"name={0},sex={1},age={2}", name, sex, age));
        }

        public static void Throwable(bool canThrow, int num)
        {
            if (canThrow)
            {
                throw new MySelfException("测试异常");
            }

            Console.WriteLine(1 / num);

            Console.WriteLine("木有抛出异常");
        }
    }
Nach dem Login kopieren

// Aufruf:

   class Program
    {
        static void Main(string[] args)
        {
            try
            {
                // Exceptions.PersonInfo(null, &#39;男&#39;, 22); 

                // Exceptions.PersonInfo("Purple", &#39;呵呵&#39;, 22);

                Exceptions.PersonInfo("Purple", &#39;男&#39;, 1000);

                //Exceptions.PersonInfo("Purple", &#39;男&#39;, 22);

                Console.WriteLine("代码执行无错误");
            }
            catch (ArgumentNullException e)
            {
                Console.WriteLine(e.Message);

                Console.WriteLine(e.StackTrace);
            }
            catch (ArgumentOutOfRangeException e)
            {
                Console.WriteLine(e.Message);

                Console.WriteLine(e.StackTrace);
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(e.Message);

                Console.WriteLine(e.StackTrace);
            }

            Console.ReadLine();
        }
    }
Nach dem Login kopieren

Sie können sehen, dass das Programm im Try-Codeblock, sobald es das Schlüsselwort throw erreicht, sofort die Ausführung des nachfolgenden Codes stoppt und dann zum entsprechenden Throw-Ausnahmeobjekttyp springt . Im Catch-Codeblock ausführen. Daher ist das Catch-and-Throw-Modell eine intuitivere und vernünftigere Möglichkeit, Ausnahmen zu behandeln.

Das Obige ist die Zusammenstellung der Grundkenntnisse von C#: Grundkenntnisse (13) Abnormaler Inhalt. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Active Directory mit C# Active Directory mit C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Active Directory mit C#. Hier besprechen wir die Einführung und die Funktionsweise von Active Directory in C# sowie die Syntax und das Beispiel.

Zufallszahlengenerator in C# Zufallszahlengenerator in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zum Zufallszahlengenerator in C#. Hier besprechen wir die Funktionsweise des Zufallszahlengenerators, das Konzept von Pseudozufallszahlen und sicheren Zahlen.

Zugriffsmodifikatoren in C# Zugriffsmodifikatoren in C# Sep 03, 2024 pm 03:24 PM

Leitfaden zu den Zugriffsmodifikatoren in C#. Wir haben die Einführungstypen von Zugriffsmodifikatoren in C# zusammen mit Beispielen und Ausgaben besprochen.

C#-Datenrasteransicht C#-Datenrasteransicht Sep 03, 2024 pm 03:32 PM

Leitfaden zur C#-Datenrasteransicht. Hier diskutieren wir die Beispiele, wie eine Datenrasteransicht aus der SQL-Datenbank oder einer Excel-Datei geladen und exportiert werden kann.

C#-Serialisierung C#-Serialisierung Sep 03, 2024 pm 03:30 PM

Leitfaden zur C#-Serialisierung. Hier besprechen wir die Einführung, die Schritte des C#-Serialisierungsobjekts, die Funktionsweise bzw. das Beispiel.

Muster in C# Muster in C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Mustern in C#. Hier besprechen wir die Einführung und die drei wichtigsten Arten von Mustern in C# zusammen mit ihren Beispielen und der Code-Implementierung.

Primzahlen in C# Primzahlen in C# Sep 03, 2024 pm 03:35 PM

Leitfaden zu Primzahlen in C#. Hier besprechen wir die Einführung und Beispiele von Primzahlen in C# sowie die Codeimplementierung.

Fakultät in C# Fakultät in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zur Fakultät in C#. Hier diskutieren wir die Einführung in die Fakultät in C# zusammen mit verschiedenen Beispielen und Code-Implementierungen.

See all articles