- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
万一dynamic_cast<SomeType&>
失败 bad_cast
抛出异常。在我的代码中有一个单独的异常层次结构和 bad_cast
不在该层次结构中,因此我的代码无法处理 bad_cast
.我可以抛出一些其他异常吗?
我的意思是我想像这样编写一个自定义处理程序:
void OnBadCast()
{
throw MyException( "Bad cast" );
}
并以某种方式在 C++ 运行时注册它
RegisterMyBadCastHandler( &OnBadCast );
以便调用此处理程序而不是 bad_cast
被抛出。
这可能吗?
最佳答案
我不认为你可以改变这种行为。
您可以做的是使用您自己的脚轮,但是:
template<class T, class E> T myCast(E expr)
{
try
{
return dynamic_cast<T>(expr);
}
catch(std::bad_cast e)
{
// custom handler
}
};
关于c++ - 我可以为抛出 bad_cast 的情况安装自定义处理程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9736208/
我在 Linux 上使用带有 clang++ 的 cmake。我遇到了一些链接器问题: Linking CXX executable "/run/media/toi/Storage E/Dropbox
万一dynamic_cast失败 bad_cast抛出异常。在我的代码中有一个单独的异常层次结构和 bad_cast不在该层次结构中,因此我的代码无法处理 bad_cast .我可以抛出一些其他异常吗
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 8 年前。 Improve t
我正在尝试一个虚拟模板函数实现。我在将 this 指针转换为指向子类模板的指针时可以正常工作,但是当我将 *this 转换为对子类的引用时我无法正常工作,为什么? template struct B
我仍然想知道为什么下面给出了 std::bad_cast 异常 #include class A {virtual void fun() {}}; class B : public A {}; in
dynamic_cast 抛出 bad_cast 异常,如果你转换一个引用,但据我所知,标准指针被视为引用,即指针是一种引用类型。 那么我应该在投指针时得到 bad_cast 吗? 这个问题来自 th
这个问题在这里已经有了答案: What is object slicing? (18 个答案) 关闭 7 年前。 我正在尝试了解 dynamic_cast 的工作原理。我有一个类 interface
我在为 dynamic_cast 使用异常处理时遇到了一些问题。它不会总是返回 bad_cast。 尽管 d1 返回 nullptr 并且编译器向我显示警告,但下面的语句没有向我抛出 bad_cast
class GAGenome { virtual void method(){}; }; template class GAArray { }; template class GA1DArra
是否可以抛出 std::bad_cast 的实例?根本的问题不是这样做好不好,而是关于 std::bad_cast 是否有默认构造函数。 谢谢 最佳答案 C++ 标准的 18.5.2 说"is",它有
为什么当失败时返回std::bad_cast时需要Null? 我了解到dynamic_cast失败时,它会返回Null,因此我可以检查Null是否已返回,这意味着发生了错误。 但是,为什么std::b
为什么下面的代码会产生std::bad_cast异常? #include #include #include int main() { std::basic_string reg = U
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
在下面的代码中,在将 derived.properties_ 从 BaseProperties 转换为 DerivedProperties 时,我得到了一个 std::bad_cast 异常抛出。查看
我有一个基类和一个派生类,如果 base 是基类的对象,我有一行会给我错误 std::bad_cast 。为什么它给我那个错误?并尝试我看到 static_cast 有效,但我不知道为什么。 行是:
关于 std::bad_cast 异常,我注意到引用和指针的行为方式似乎不同。例如: class A { public: ~A() {} }; class B : public A {}; //Cas
我正在尝试使用以下代码从文件中读取数据。 (请注意,您需要在 GCC 上启用 C++11 功能才能进行此编译。) #include typedef unsigned char byte; int m
我正在尝试开始使用 Boost for C++。这是一个用 g++ -Wall test.cpp/usr/local/Cellar/boost/1.55.0/lib/libboost_locale
我正在尝试使用 ANTLR4 解析表达式。因此,我正在使用访问者模式并创建一个抽象语法树。 结果可以是一个表达式或其他东西(我从这个示例代码中删除了)。访问者期望返回类型 antlrcpp::Any所
为简单起见, class Parent {} class Child1 : Parent {} class Child2 : Parent {} 在其他地方,我创建了 Child1 和 Child2
我是一名优秀的程序员,十分优秀!