C ++でカスタムnullポインタ例外をスローする簡単な方法はありますか? 私の考えは、this
ポインターを再定義することでしたが、3 つの問題があります。
- 使用しないと、
this
標準の Access Violation Exception がスローされます - ポインターは使用されるたびにチェックされます
Visual Studio はこれを
InteliSense
エラーとして表示します (コンパイル可能) (他のコンパイラが何をするかはわかりません)#include <iostream> #define this (this != nullptr ? (*this) : throw "NullPointerException") class Obj { public: int x; void Add(const Obj& obj) { this.x += obj.x; // throws "NullPointerException" //x = obj.x; // throws Access Violation Exception } }; void main() { Obj *o = new Obj(); Obj *o2 = nullptr; try { (*o2).Add(*o); } catch (char *exception) { std::cout << exception; } getchar(); }