Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
トライ キャッチの闇
Search
HANACCHI
December 26, 2023
Technology
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
トライ キャッチの闇
INVOKEされた先で、THROWされた例外を、上位XAMLのトライ キャッチで捕捉!
その時、INVOKEされた先で設定された値は戻ってこない!
さてどうするか!
HANACCHI
December 26, 2023
More Decks by HANACCHI
See All by HANACCHI
単体試験の生産性向上と私
hanacchi
0
140
PowerAutomatefordesktopでの開発シーンで
hanacchi
0
33
ChatGPTにテストデータを作ってもらう
hanacchi
0
210
AI JIMYで数独
hanacchi
0
69
メール本文をどうやっつけるか
hanacchi
0
390
2024年のローコード界隈最新事情~業務担当者でもAI・生成AIを活用できる!~
hanacchi
0
470
AI JIMY - 登壇(インストール編)
hanacchi
0
560
AI JIMY - 登壇(設定編)
hanacchi
0
520
AI JIMY - 登壇(実行編)
hanacchi
0
480
Other Decks in Technology
See All in Technology
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
640
aws-iot-platform-architecture-use-cases.pdf
ma2shita
0
220
[2026-09-11]SREは誰のもの?運用エンジニアが始める 「SRE領域への越境」とチームの進化の軌跡 〜Road to NEXT CRE
tosite
0
290
AgentCore Runtime上にAgentic Coding基盤を構築・展開する際の設計ポイントと限界点 / Design considerations and limitations when building an agentic coding platform on AgentCore Runtime
har1101
4
190
データ_AIの事業の勝敗をわけるもの
nek0128
0
390
Claude Code本って、 読む必要あるの?
oikon48
2
470
Screen Lens - 今見てる画面を翻訳する
komagata
0
320
絵ではじめるKubernetesセキュリティ
aoi1
3
620
俺の仕事は AIに奪われないし、たぶんその BIも要らない
hikaruri
0
490
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
330
30座EKS, 180次升級淬煉的EKS Upgrade Skill 的歷程
eric8230
0
170
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
1
1.6k
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
700
Code Reviewing Like a Champion
maltzj
528
40k
How to build a perfect <img>
jonoalderson
1
6k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
330
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Facilitating Awesome Meetings
lara
57
7.1k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Un-Boring Meetings
codingconduct
0
420
A Soul's Torment
seathinner
8
3.6k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
300
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
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"?