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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
HANACCHI
December 26, 2023
Technology
0
160
トライ キャッチの闇
INVOKEされた先で、THROWされた例外を、上位XAMLのトライ キャッチで捕捉!
その時、INVOKEされた先で設定された値は戻ってこない!
さてどうするか!
HANACCHI
December 26, 2023
Tweet
Share
More Decks by HANACCHI
See All by HANACCHI
PowerAutomatefordesktopでの開発シーンで
hanacchi
0
14
ChatGPTにテストデータを作ってもらう
hanacchi
0
170
AI JIMYで数独
hanacchi
0
48
メール本文をどうやっつけるか
hanacchi
0
340
2024年のローコード界隈最新事情~業務担当者でもAI・生成AIを活用できる!~
hanacchi
0
440
AI JIMY - 登壇(インストール編)
hanacchi
0
520
AI JIMY - 登壇(設定編)
hanacchi
0
470
AI JIMY - 登壇(実行編)
hanacchi
0
450
パスワードを保存しますか?
hanacchi
0
470
Other Decks in Technology
See All in Technology
今のWordPress の制作手法ってなにがあんねん?(改) / What’s the Deal with WordPress Development These Days?
tbshiki
0
520
【社内勉強会】新年度からコーディングエージェントを使いこなす - 構造と制約で引き出すClaude Codeの実践知
nwiizo
2
760
SLI/SLO 導入で 避けるべきこと3選
yagikota
0
130
AI時代の「本当の」ハイブリッドクラウド — エージェントが実現した、あの頃の夢
ebibibi
0
150
Microsoft “Adaptive Cloud” Update 2026年3月版
sdosamut
0
100
20260311 技術SWG活動報告(デジタルアイデンティティ人材育成推進WG Ph2 活動報告会)
oidfj
0
370
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
18k
内製AIチャットボットで学んだDatadog LLM Observability活用術
mkdev10
0
140
欠陥分析(ODC分析)における生成AIの活用プロセスと実践事例 / 20260320 Suguru Ishii & Naoki Yamakoshi & Mayu Yoshizawa
shift_evolve
PRO
0
180
ABEMAのバグバウンティの取り組み
kurochan
1
140
会社紹介資料 / Sansan Company Profile
sansan33
PRO
16
410k
AWSの資格って役に立つの?
tk3fftk
2
370
Featured
See All Featured
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
91
Deep Space Network (abreviated)
tonyrice
0
93
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
150
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
450
Claude Code のすすめ
schroneko
67
220k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
220
Test your architecture with Archunit
thirion
1
2.2k
Embracing the Ebb and Flow
colly
88
5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
460
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"?