私が書いているアプリケーションでは、ほとんどのエラー処理で例外を使用しています。私はまだ独自の例外クラスを定義していません。次のことを行っただけです。
namespace Mage {
typedef std::exception Exception;
}
このようにして、後で同じインターフェイスを使用する必要がある独自の型を定義するときに、すべてのコードを変更する必要がなくなります。
つまり、例外が発生するとアプリケーションがクラッシュします。上記の定義を念頭に置いて、なぜこれがクラッシュするのでしょうか?
void Mage::Root::initialize(Mage::String& p_log) {
// initialize GLFW and GLEW.
if (!glfwInit()) {
throw new Mage::Exception("failed to initialize OpenGL");
return;
} else m_GLFWInitialized = true;
「新規」を削除しても保持しても、クラッシュします。何か不足していますか?私はチュートリアルを調べましたが、それらは私を賢くしません。
ここでもエラーをキャッチします:
try {
MAGE_ROOT.initialize(Mage::String("Mage.log"));
} catch (Mage::Exception& e) {
std::cerr << e.what() << std::endl;
}
私が得ているクラッシュは次のとおりです。
Debug Error!
Program: ...sual Studio 2010\Project\Mage3D\Binaries\Debug\Test.exe
R6010
- abort() has been called
(Press Retry to debug application)