#ifndef EXCEPTION_H
#define EXCEPTION_H
#include
using namespace std;
class Exception
{
private:
string m_fileName;
string m_functionName;
int m_lineNumber;
protected:
string m_msg;
public:
Exception(string msg);
virtual ~Exception();
string getMessage();
string getFileName();
string getFunctionName();
int getLineNumber();
};
#endif // EXCEPTION_H
Exception::Exception(string msg)
{
m_msg = msg;
m_fileName = __FILE__;
m_functionName = __FUNCTION__;
m_LineNumber = __LINE__;
}
#include
#include "Exception.h"
using namespace std;
double divide(double x, double y);
void main{}
{
double resault=0;
try
{
resault = divide(5.0 , 0.0);
}
catch (Exception& ex)
{
cout << "an error ocuured:" << '\n';
cout << "Message: " << ex.getMessage();
cout << "FileName: " << ex.getFileName();
cout << "FunctionName: " << ex.getFunctionName();
cout << "LineNumber: " << ex.getLineNumber();
}
}
double divide(double x, double y)
{
if ( y==0 )
throw Exception("Divide by Zero.");
return x/y;
}
#define At(txt) (txt),__LINE__,__FILE__
Exception::Exception(string msg, const char* file, const char* function, int line)
{
m_msg = msg;
m_fileName = file;
m_functionName = __FUNCTION__;
m_LineNumber = __LINE__;
}
throw Exception(At("Divide by Zero."));
#define ExceptionAt(txt) Exception((txt),__LINE__,__FILE__)
.
.
.
throw ExceptionAt("Divide by Zero.");
وفي 28/رمضان/1429 09:48 ص، قال محمد علاء الدين عبد العزيز متحمساً:
سؤالى هل يمكن معرفة اسم الملف و الداله و رقم السطر الذى حدث بهم الخطأ اثناء runtime?