Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 0으로 나누기 예외 처리

<시간/>

이 튜토리얼에서는 C++에서 0으로 나누기 예외를 처리하는 방법에 대해 논의할 것입니다.

0으로 나누기는 수학에서 정의되지 않은 엔터티이며 사용자 측에서 오류로 반환되지 않도록 프로그래밍하는 동안 올바르게 처리해야 합니다.

runtime_error 클래스 사용

예시

#include <iostream>
#include <stdexcept>
using namespace std;
//handling divide by zero
float Division(float num, float den){
   if (den == 0) {
      throw runtime_error("Math error: Attempted to divide by Zero\n");
   }
   return (num / den);
}
int main(){
   float numerator, denominator, result;
   numerator = 12.5;
   denominator = 0;
   try {
      result = Division(numerator, denominator);
      cout << "The quotient is " << result << endl;
   }
   catch (runtime_error& e) {
      cout << "Exception occurred" << endl << e.what();
   }
}

출력

Exception occurred
Math error: Attempted to divide by Zero

사용자 정의 예외 처리 사용

예시

#include <iostream>
#include <stdexcept>
using namespace std;
//user defined class for handling exception
class Exception : public runtime_error {
   public:
   Exception()
   : runtime_error("Math error: Attempted to divide by Zero\n") {
   }
};
float Division(float num, float den){
   if (den == 0)
   throw Exception();
   return (num / den);

}
int main(){
   float numerator, denominator, result;
   numerator = 12.5;
   denominator = 0;
   //trying block calls the Division function
   try {
      result = Division(numerator, denominator);
      cout << "The quotient is " << result << endl;
   }
   catch (Exception& e) {
      cout << "Exception occurred" << endl << e.what();
   }
}

출력

Exception occurred
Math error: Attempted to divide by Zero

스택 해제 사용

예시

#include <iostream>
#include <stdexcept>
using namespace std;
//defining function to handle exception
float CheckDenominator(float den){
   if (den == 0) {
      throw runtime_error("Math error: Attempted to divide by zero\n");
   }
   else
      return den;
}
float Division(float num, float den){
   return (num / CheckDenominator(den));
}
int main(){
   float numerator, denominator, result;
   numerator = 12.5;
   denominator = 0;
   try {
      result = Division(numerator, denominator);
      cout << "The quotient is " << result << endl;
   }
   catch (runtime_error& e) {
      cout << "Exception occurred" << endl << e.what();
   }
}

출력

Exception occurred
Math error: Attempted to divide by Zero