Heim  >  Artikel  >  Backend-Entwicklung  >  Wie gehe ich mit Funktionsausnahmen in C++ um?

Wie gehe ich mit Funktionsausnahmen in C++ um?

WBOY
WBOYOriginal
2024-04-12 21:06:02703Durchsuche

Die Ausnahmebehandlung ist ein Mechanismus in C++ zur Behandlung von Laufzeitfehlern. Lösen Sie Ausnahmen mit „throw“ und „catch“ aus und behandeln Sie sie mit „try“, „catch“ und „finally“-Blocks. Die spezifische Syntax lautet wie folgt: try { // Code, der Ausnahmen verursachen kann}catch (const std::Exception& e) { // Ausnahmen abfangen und behandeln}catch(...) { // Alle Ausnahmen abfangen}

C++ 中如何处理函数异常?

So behandeln Sie Funktionsausnahmen in C++

Die Ausnahmebehandlung ist ein Mechanismus in C++ zur Behandlung von Laufzeitfehlern. Verwenden Sie das Schlüsselwort „throw“, um Ausnahmen auszulösen, und verwenden Sie die Blöcke „try“, „catch“ und optional „finally“, um Ausnahmen abzufangen und zu behandeln.

Syntax:

try {
  // 可能引发异常的代码
} catch (const std::exception& e) {
  // 捕获并处理异常
} catch(...) {
  // 捕获所有异常
}

Praxisbeispiel:

Betrachten Sie die folgende Funktion, die einen String in eine Ganzzahl umwandelt:

int string_to_int(std::string str) {
  try {
    int num = std::stoi(str);
    return num;
  } catch (const std::invalid_argument& e) {
    std::cout << "无法将字符串转换为整数" << std::endl;
    return -1;
  } catch (const std::out_of_range& e) {
    std::cout << "整数超出范围" << std::endl;
    return -1;
  }
}

Verwenden Sie diese Funktion in der Hauptfunktion:

int main() {
  std::string input = "123";
  int num;

  try {
    num = string_to_int(input);
    std::cout << num << std::endl;
  } catch (const std::exception& e) {
    std::cout << "出现异常: " << e.what() << std::endl;
  }

  return 0;
}

Vorteile:

  • Verbessern Robustheit des Programms
  • Ermöglichen Sie die Behandlung spezifischer Ausnahmen an bestimmten Orten
  • Bereitstellen von Fehlerinformationen und benutzerdefinierter Fehlerbehandlung
  • Verhindern Sie unerwartete Programmabbrüche

Das obige ist der detaillierte Inhalt vonWie gehe ich mit Funktionsausnahmen in C++ um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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