Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
トライ キャッチの闇
Search
HANACCHI
December 26, 2023
Technology
0
33
トライ キャッチの闇
INVOKEされた先で、THROWされた例外を、上位XAMLのトライ キャッチで捕捉!
その時、INVOKEされた先で設定された値は戻ってこない!
さてどうするか!
HANACCHI
December 26, 2023
Tweet
Share
More Decks by HANACCHI
See All by HANACCHI
テスト系アクティビティを使ってみる
hanacchi
0
280
君も小説家になろう!
hanacchi
0
140
マンション理事長、動く!
hanacchi
0
17
業務時間外で作ったロボット
hanacchi
0
19
Integration Service
hanacchi
0
69
はなっち!
hanacchi
0
150
SPEAKERDECK From Sign up, Sign in, Upload your slide and Sign out
hanacchi
0
120
開発の現場で求められた効率化ツール
hanacchi
1
1.3k
20221003 はなっち!個人事業主になる!
hanacchi
0
570
Other Decks in Technology
See All in Technology
Kernel MemoryでAzure OpenAI Serviceとお手軽データソース連携
mitsuzono
1
260
GrafanaMeetup_AmazonManagedGrafanaのアクセス制御機能とマルチテナント環境下でのアクセス制御について
daitak
0
290
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
4
16k
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
5
390
R3のコードから見る実践LINQ実装最適化・コンカレントプログラミング実例
neuecc
2
400
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
1
820
Reducing Cross-Zone Egress at Spotify with Custom gRPC Load Balancing Recap
koh_naga
0
210
web-application-security
matsuihidetoshi
0
180
LLM開発・活用の舞台裏@2024.04.25
yushin_n
3
820
ServiceNow Knowledge 24の歩き方 EYストラテジー・アンド・コンサルティング
manarobot
0
200
20240418_Google ColabにLLMが搭載されたようなのでPython x データ分析の勉強方法を考えてみる
doradora09
0
150
プロンプトエンジニアリングでがんばらない-Agentic Workflow へ-近藤憲児
kenjikondobai
4
1k
Featured
See All Featured
KATA
mclloyd
15
12k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
The Invisible Customer
myddelton
114
12k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
Mobile First: as difficult as doing things right
swwweet
216
8.6k
The Power of CSS Pseudo Elements
geoffreycrofte
60
5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
322
20k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
Writing Fast Ruby
sferik
621
60k
Designing the Hi-DPI Web
ddemaree
276
33k
Transcript
トライ キャッチの闇
はなっち!とは… 2020年11月 定年退職 同 年 同 月 有期契約社員
2022年7月 個人事業主化 2023年12月 相変わらず 2024年1月~ またお仕事いただけました! はなっち!の最近 在宅で、チャーハン、焼きそば三昧! ⇒冷蔵庫の最終処分役(^^♪ ⇒自己責任飯!! ! Twitter:hjmkzk Qiita:@HANACCHI FaceBook:hajime.kozaki
トライ キャッチ
例外 • 条件分岐アクティビティを使って、事象を判定すれば回避できる例外 • 通常の使い方では発生しないけど、設定次第では発生する例外 • 何時、どのようなタイミングで発生するか分からない例外 ➢ データテーブルに列を追加する時に、DT.Columns.Contains(“列名”)で既に存在しているかどうか判 断できるが、「データ列を追加」だけで実装したい。
➢ 所定フォルダ中にある、固定ファイル名のEXCELを読込み、特定シート中の、特定範囲を読み込む。 しかし、いつの間にか特定シートがなくなってしまった。 ➢ 特定シート中の、特定範囲を読み込むが、指定方法が悪い場合は、シート全体を読み込む仕様が提示 された。 ➢ 外部Webサーバからデータスクレイピングしているのだが、ネットワークが輻輳、遅延していて タイムアウトしてしまった。
例外拾わなくても分かる • 異常終了したら、そのダイアログが出るから、対策しなくてもいいぢゃん!! • UnAttended ライセンスによるタイムトリガー起動だと、そう言う訳にはいかない ➢ 異常終了した情報を収集し、例えば、スクリーンショットを取得するとか、異常をメールで通知 する仕組み、仕掛けを作成する。
こんな感じ(NORMAL) String.Join(String.Empty, 設定番号 .ToCharArray.Reverse.ToArray)
こんな感じ(ABNORMAL) String.Join(String.Empty, 設定番号 .ToCharArray.Reverse.ToArray) New BusinessRuleException ("DEMO EXCEPTION") 到達しない
こんな感じ(Try~Catch) String.Join(String.Empty, 設定番号 .ToCharArray.Reverse.ToArray) New BusinessRuleException ("DEMO EXCEPTION") 取得番号が渡されない
取得番号が渡されない String.Join(String.Empty, 設定番号 .ToCharArray.Reverse.ToArray) New BusinessRuleException ("DEMO EXCEPTION") INVOKE側でThrowが発行され、 設定した出力引数への返却処理が
行われていない!
設定した情報は返したい! • Throwする際のメッセージに、情報を載せてあげる • 出力引数のString型を止め、Dictionary型にする ➢ 例外として見せたくない情報だと、Catchした中で加工する必要がある ➢ コンストラクタを呼び出した時に、領域が確保され、データ設定が確定する(?)
やってみよう! String.Join(String.Empty, 設定番号 .ToCharArray.Reverse.ToArray) New BusinessRuleException ("DEMO EXCEPTION") 設定番号 &
"->" & 取得番号 & "=" & 取得辞書("V").ToString
まとめ • Try~Catchは、 想定している例外、想定していない例外を捕捉し、 ロボットとして異常終了させない事ができる! • 親のTry~Catchで括られた子の例外も捕捉できるが、 子からの情報を戻すことは簡単ではなく、工夫が必要である ⇒Dictionary型とか、DataRow型とか... •
やってやれない事はない! それが「UiPath」の楽しさよ UiPath
一生UiPathします How Do You Like "UiPath"?