c:c_exception_handling
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
c:c_exception_handling [2017/10/12 10:35] – peter | c:c_exception_handling [2020/07/15 09:30] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== C - C++ Exception Handling ====== | ====== C - C++ Exception Handling ====== | ||
+ | |||
+ | [[C - C++ Exception Handling: | ||
+ | |||
+ | [[C - C++ Exception Handling: | ||
+ | |||
+ | [[C - C++ Exception Handling: | ||
[[C - C++ Exception Handling: | [[C - C++ Exception Handling: | ||
Line 7: | Line 13: | ||
[[C - C++ Exception Handling: | [[C - C++ Exception Handling: | ||
+ | [[C - C++ Exception Handling: | ||
+ | [[C - C++ Exception Handling: | ||
- | ===== Class exceptions ===== | ||
- | |||
- | <code cpp> | ||
- | #include < | ||
- | #include < | ||
- | using namespace std; | ||
- | |||
- | class forgetcode | ||
- | { | ||
- | public: | ||
- | char Error[80]; | ||
- | | ||
- | forgetcode() { | ||
- | cout<<" | ||
- | } | ||
- | |||
- | void display() | ||
- | { | ||
- | cout<<" | ||
- | } | ||
- | }; | ||
- | |||
- | |||
- | int main() | ||
- | { | ||
- | int i; | ||
- | |||
- | try { | ||
- | cout << "Enter a positive number: "; | ||
- | cin>> | ||
- | |||
- | if(i<0) | ||
- | throw forgetcode(); | ||
- | else | ||
- | cout<<" | ||
- | } | ||
- | catch (forgetcode f) { | ||
- | f.display(); | ||
- | } | ||
- | |||
- | return 0; | ||
- | } | ||
- | </ | ||
- | |||
- | |||
- | |||
- | ===== Throwing Exception ===== | ||
- | |||
- | <code cpp> | ||
- | #include < | ||
- | #include < | ||
- | using std::cin; | ||
- | using std::cout; | ||
- | using std::endl; | ||
- | using std:: | ||
- | |||
- | class DivideByZeroException : public runtime_error | ||
- | { | ||
- | public: | ||
- | | ||
- | }; | ||
- | |||
- | |||
- | double quotient( int numerator, int denominator ) | ||
- | { | ||
- | throw DivideByZeroException(); | ||
- | |||
- | return 0; | ||
- | } | ||
- | |||
- | |||
- | int main() | ||
- | { | ||
- | try | ||
- | { | ||
- | double result = quotient( 1, 1 ); | ||
- | cout << "The quotient is: " << result << endl; | ||
- | } | ||
- | catch ( DivideByZeroException & | ||
- | { | ||
- | cout << " | ||
- | } | ||
- | |||
- | return 0; | ||
- | } | ||
- | </ | ||
- | |||
- | |||
- | ===== Throw Types ===== | ||
- | |||
- | <code cpp> | ||
- | #include < | ||
- | using namespace std; | ||
- | |||
- | // only throw ints, chars, and doubles | ||
- | void f(int val) throw(int, char, double) | ||
- | { | ||
- | if(val==0) | ||
- | throw val; | ||
- | |||
- | if(val==1) | ||
- | throw ' | ||
- | if(val==2) | ||
- | throw 123.23; | ||
- | } | ||
- | |||
- | int main() | ||
- | { | ||
- | try{ | ||
- | f(0); // also, try passing 1 and 2 to f() | ||
- | } | ||
- | catch(int i) { | ||
- | cout << " | ||
- | } | ||
- | catch(char c) { | ||
- | cout << " | ||
- | } | ||
- | catch(double d) { | ||
- | cout << " | ||
- | } | ||
- | return 0; | ||
- | } | ||
- | </ |
c/c_exception_handling.1507804515.txt.gz · Last modified: 2020/07/15 09:30 (external edit)