我想通过'rescue_from'来捕获REST API应用程序中的任何RoR异常。
class SalesLine extends Component {
constructor(props) {
super(props);
this.state = {discount: 0};
}
onReset(lineItem) {
this.setState({discount: 0});
}
render() {
return <DiscountEditor
value={this.state.discount}
onChange={this.props.onDiscountChanged}
onReset={this.onReset.bind(this)}
</DiscountEditor>;
}
}
但它捕获了太多无关的异常。我可以只捕获RoR例外吗?这是一个好习惯吗?如果没有,你还可以推荐什么?
答案 0 :(得分:0)
好吧,你总是可以走出去获得所有Rails异常的详尽列表,但老实说,你的第一步应该是决定你想要拯救哪些情况,以及你想要允许哪些情况发生灾难。并非所有例外都应该被捕获。
如果您已经开始捕获所有Rails异常,那么您应该查看api文档以了解您所关注的rails版本,并找到您关心的例外的基类。例如,如果您希望只捕获所有ActiveRecord,可以从基类ActiveRecord::ActiveRecordError类中进行救援。
同样,我强调你应该从另一个方向接近这一点 - 不是拯救所有东西,然后试图将其稀释,而是从最低限度拯救并根据需要添加。