[Warning] catching polymorphic type 'class std::out_of_range' by value [-Wcatch-value=]
时间: 2023-07-16 09:14:16 浏览: 190
Exception-Catching---BOXES:展示了如何捕获异常以使错误易于阅读!
这是一个编译器的警告,意思是你在异常处理中捕捉了一个多态类型(即使用了继承关系的类),但是你使用了值传递方式,可能会导致切片问题。
解决这个警告的方法是使用引用或指针来传递异常对象,例如:
```c++
try {
// some code that may throw std::out_of_range
} catch(std::out_of_range& e) {
// handle the exception
}
```
或者
```c++
try {
// some code that may throw std::out_of_range
} catch(std::out_of_range* e) {
// handle the exception
}
```
这样可以避免出现切片问题。
阅读全文