ThrowとRethrowはどう違う?

 ThrowとRethrowはどう違う?

0f4a27389318ca7087ae12b1593171c1?s=128

SaoriTakita

March 05, 2020
Tweet

Transcript

  1. さお(@saosao885)

  2. 目次  開発当初・・・  Throwとは/使い方  Exception(例外の種類)  Rethrowとは/使い方 

    Throw/Rethrowの違い  まとめ
  3. 自己紹介 名前:さお RPA歴:UiPath(2年以上) ※勉強期間を含む よく使用するアクティビティ: Terminal系 最近勉強会が少ない・・・ Twitter: @saosao885 ご当地、電車ネタはついて

    いけるはず。。。
  4. 開発当初・・・  RPAを学び、いざ客先で開発業務をやっていた時。。。 ThrowとRethrowって、 使い方がいまいちわから ないなぁ。。。 この2つは何が違うの?

  5. Throwとは  投げるという意味→「(エラーの時は) 何とかして」  要は「エラーの時は止めないで、どうにかロボットを動かすためのもの」  基本はTryで使用  これがないと・・・

    左記はあくまで一例です
  6. 使い方 ①Try Catchアク ティビティを配置 ②ロボを作成、エラーの場 所に「Throw」を配置 ③Throwの”Exception”欄に New Exceptionと、エラーの 内容を記載

    (赤字はエラー内容による)
  7. Exception(例外の種類) 主なExceptionの種類(私の見たことあるもの) ▪Exception:エラー全般(よく使う) ▪BusinessRuleException:ビジネスエラー(そこそこ使う) ▪DirectoryNotFoundException:ファイルが見つからない ▪IOException:入力/出力のエラー ▪TimeoutException:タイムアウト

  8. Rethrowとは  Throwで起きたエラーの内容をもう1回起こす  Catchで使用する  上位xaml側にあるCatchへ移動してほしいとき

  9. 例えば Rethrowは右記のような状況 の時に使用できます

  10. 使い方1 ここではビジネスエラーを 出すようにします

  11. 使い方2 Rethrowでは「前のThrowで 起きたものをもう一回発生させ たいとき」に使用 左の例では、Subのxamlファ イルで実行中、「Try」の部分 で「値の不一致」とエラーが出 るのですが、Rethrowで再度 「値の不一致」エラーが出る

  12. 使い方3 Subのxaml側で「値の不一致」が 出たビジネスエラーはMain側の Catchへ入る

  13. ThrowとRethrowの違い Throw Rethrow アクティビティ 基本の使い方 Tryで使用 New (例外の詳細)(例外の理 由等)を記載 Catchで使用

    上位にあるxaml側のCatchへ行か せたい(対応するException)時に 使う なので、プロパティに入力箇所がない どんなケースに 使う? Try中にエラーが発生するが、どう にか回避したい時等 Throwで一度起こしたエラーをもう 一回起こしたいとき
  14. まとめ  Throw→エラーを意図的に起こして「どうしたいのか」を示す  Rethrow→Throwで起こしたエラーをもう一回起こしたいとき  より使いやすい、止まりづらいロボづくりを目指しましょう!

  15. イラスト:いらすとや