eh2.c
来自「this is a gcc file, you can download it 」· C语言 代码 · 共 75 行
C
75 行
// Special g++ Options: -fexceptions// excess errors test - XFAIL a29k-*-* sparc64-*-elf arm-*-pe#include <cstdlib>#include <iostream>class Vector {private: int *p; int sz;public: // Exception class class Range { private: int value_i; public: Range( int i ) { value_i = i; }; int value() { return value_i; }; }; Vector( int s ); ~Vector(); int size() { return sz; }; int& operator []( int i );};Vector::Vector(int s) { sz = s; p = new int[sz];}Vector::~Vector() { delete [] p;}int&Vector::operator [](int i) { if (0<=i && i<sz) { return p[i]; } else { throw Range( i ); }}void crash(Vector& v ) { v[v.size()+10]; // Triggers range error!}void do_something(Vector& v) { crash( v );}voidf(Vector& v) { try { do_something( v ); } catch (Vector::Range& r) { std::cout << "Invalid vector range " << r.value() << " caught in f()" << std::endl; std::exit(0); }}main() { Vector v(10); f( v ); return 1;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?