抱歉所有錯誤,英語不是我的母語。我的代碼包含以下幾行:
tf::TransformListener listener;
tf::StampedTransform transform;
while(ros.ok()) {
try {
listener.lookupTransform("/map", "/base_link", ros::Time(0), transform);
} catch(tf::TransformException ex) {
//ROS_ERROR("Transform problem -> %s", ex.what());
}
問題是我應該在沒有 try catch 塊的情況下達到相同的效果。我需要在 arduino 上使用這段代碼,我很難理解 if else 陳述句是否可以達到相同的結果?感謝任何幫助。
uj5u.com熱心網友回復:
正如Sam Varshavchik所說,
如果在 C 程式中拋出例外,那么在某個時候捕獲它并恢復執行的唯一方法是使用 try/catch 塊。這是唯一的方法,沒有變通方法或例外。
正如這個答案所說,全域錯誤處理程式的唯一方法是將整個程式放入try/catch陳述句中,或者至少是會導致錯誤的部分。更好的是,您可以通過檢查值和asserting 來確保您的程式一開始就不會拋出錯誤。
但總而言之,不,沒有辦法做到這一點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/521044.html
標籤:C 例外
