https://github.com/leozhang1/QtInterpreter 中 ParserException.cpp代码展示
时间: 2023-09-27 14:11:38 浏览: 138
以下是 `ParserException.cpp` 的代码展示:
```c++
#include "ParserException.h"
ParserException::ParserException(const std::string& msg, size_t line, size_t column) :
std::runtime_error(msg), m_line(line), m_column(column) {}
const char* ParserException::what() const noexcept {
std::ostringstream os;
os << "ParserError: " << std::runtime_error::what() << " (line " << m_line << ", column " << m_column << ")";
return os.str().c_str();
}
```
这是一个 C++ 类,名为 `ParserException`。它继承自 `std::runtime_error`,并且包含了两个成员变量 `m_line` 和 `m_column`,分别表示出错的行号和列号。构造函数接受三个参数:`msg` 表示错误信息,`line` 表示出错的行号,`column` 表示出错的列号。`what()` 函数返回一个字符串,其中包含了错误类型、错误信息、以及出错的位置。
相关问题
https://github.com/leozhang1/QtInterpreter 中 ParserException类所属头文件,代码展示
ParserException类所属的头文件是parserexception.h,下面是该类的代码展示:
```c++
#ifndef PARSEREXCEPTION_H
#define PARSEREXCEPTION_H
#include <exception>
#include <string>
namespace interpreter {
class ParserException : public std::exception {
public:
explicit ParserException(const std::string& message);
const char* what() const noexcept override;
private:
std::string m_message;
};
}
#endif // PARSEREXCEPTION_H
```
这是一个自定义异常类,继承自标准库中的std::exception类。它有一个构造函数,用于传入异常信息,以及一个what()函数,用于返回异常信息。在这个异常类中,我们可以自定义一些异常信息,比如语法错误等,然后在解释器中抛出该异常。这样,当出现异常时,我们就可以得到清晰的错误提示。
https://github.com/leozhang1/QtInterpreter这个链接 Exception.cpp代码 展示
下面是QtInterpreter项目中Exception.cpp的代码:
```
#include "Exception.h"
Exception::Exception(const std::string& error) : error(error) {}
Exception::Exception(const char* error) : error(error) {}
const char* Exception::what() const noexcept {
return error.c_str();
}
```
该文件定义了一个名为Exception的类,它继承自std::exception类。Exception类有两个构造函数:一个接受一个std::string类型的错误信息,另一个接受一个char*类型的错误信息。类还有一个what()函数,用于返回错误信息。
阅读全文