Rust part10at TECHRust part10 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト551:デフォルトの名無しさん 21/05/10 10:12:49.59 ro06Xyvc.net >>541 BOOL func() { BOOL rc = TRUE; open_some(x); if ( !func2() ) { printf( "エラーだよ\n" ); rc = FALSE; goto lab_ex; } ・・・ lab_ex:; close_some(x) return rc; } ↑のようなものが、例外処理を使えばgoto文を使わなくても書けるようになる。 ただし、goto文が何でそんなに嫌われるかは謎と言えば謎ぞの一つではあり、 lab_ex:; が見た目的に「浮く」からではないか、という説がある。 しかし、論理構造的にはgoto分がそんなに分かりにくいわけではない。 552:デフォルトの名無しさん 21/05/10 10:13:54.77 Pi5UB1M6.net そういやCで bail: ラベルが多用されてたなーっていうのを anyhowクレートの bail! マクロで思い出した 553:デフォルトの名無しさん 21/05/10 10:16:15.81 pIvV80n0.net >>541,542 クソスレチ 554:デフォルトの名無しさん 21/05/10 10:23:18.20 ro06Xyvc.net >>542 例外処理を使った場合、goto文が要らない: BOOL func() { BOOL rc = TRUE; open_some(x); try { func2() ; // 例外発生の可能性有り func3() ; // 例外発生の可能性有り } catch(...) { printf( "エラーだよ\n" ); rc = FALSE; } close_some(x) return rc; } 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch