Maison >développement back-end >C++ >Pratique de gestion des erreurs des paramètres de fonction C++

Pratique de gestion des erreurs des paramètres de fonction C++

王林
王林original
2024-04-19 16:15:01745parcourir

Les techniques suivantes peuvent être utilisées dans la pratique de gestion des erreurs des paramètres de fonction C++ : Exceptions : utilisez des blocs try-catch pour intercepter les exceptions et fournir des informations sur les erreurs. Assertions : utilisez des assertions pour vérifier la validité des paramètres, terminer le programme en cas d'échec et imprimer un message d'erreur. Code d'erreur : la fonction renvoie un code d'erreur pour indiquer une condition d'erreur.

C++ 函数参数错误处理实践

Pratique de gestion des erreurs des paramètres de fonction C++

Dans le développement de logiciels, la gestion des erreurs des paramètres de fonction est cruciale pour éviter les plantages du programme ou un comportement inattendu dû à une entrée invalide ou incohérente. C++ fournit plusieurs techniques pour gérer efficacement les erreurs d’argument de fonction.

1. Utiliser des exceptions

C++ fournit exception 类来处理错误情况。我们可以使用 try-catch des blocs pour détecter les exceptions dans les fonctions :

void function(int n) {
  try {
    if (n < 0) throw std::invalid_argument("n must be non-negative.");

    // 函数逻辑...
  } catch (const std::invalid_argument& e) {
    std::cerr << "Error: " << e.what() << std::endl;
  }
}

2. Utiliser des assertions

Les assertions peuvent vérifier la validité des paramètres de la fonction. Si l'assertion échoue, elle mettra fin au programme et imprimera un message d'erreur.

void function(int n) {
  assert(n >= 0);

  // 函数逻辑...
}

3. Renvoyer le code d'erreur

La fonction peut renvoyer un code d'erreur pour indiquer une situation d'erreur. Par exemple :

int divide(int a, int b) {
  if (b == 0) return -1;  // 错误码:除数为零

  return a / b;
}

Cas pratique

Voici un exemple d'utilisation d'exceptions pour vérifier les paramètres de la fonction :

// 计算圆的面积
double area_circle(double radius) {
  if (radius < 0) throw std::invalid_argument("Radius must be non-negative.");

  return M_PI * radius * radius;
}

int main() {
  try {
    double result = area_circle(-2.5);  // 触发异常
  } catch (const std::invalid_argument& e) {
    std::cerr << "Error: " << e.what() << std::endl;
  }

  return 0;
}

Sortie :

Error: Radius must be non-negative.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn