こんにちは。完全自動化研究所の小佐井です。
RPAとプログラミングの基礎を身に付ける連載の第6回です。
今回は「例外処理」です。
正常なプログラム処理はわかってきたという方に向けて、例外(エラー)が発生した時の対処方法について、SikuliXを使って解説します。
それでは、どうぞ!
例外処理を学ぼう
最初に今回作成するプログラムを見ましょう
今回作成するプログラム
図1が今回作成するプログラムの全容です。2つのパートに分かれています。作業中に全体が分からなくなったときは、ここを確認しながら進めてください。
図1 作成するプログラムの全容
事前準備
準備1:別名で保存しましょう
前回のプログラムを再利用します。「【第5回】Sikuliで学ぶRPA超入門:関数を学ぼう」で使ったプログラムを変更して使います。まず、「C:\RPA\JB1001\JB100105.sikuli」を開いてください。SikuliX開発画面のメニュー「ファイル」をクリックし、「開く」をクリックします(図2)。
図2 メニュー「開く」をクリック
「Open a Sikuli Script」ダイアログが開きますので(図3)、「JB100105.sikuli」をクリックします❶。ファイル名に「JB100105.sikuli」と表示されますので❷、「Select」をクリックします❸。JB100105.sikuliが開きます。他のプログラムが開いているときは「×」をクリックして閉じてください。間違えて、他のプログラムを変更してしまうことがありますから❹。ソースコードウィンドウには「JB100105」だけになりましたね!?
図3 「Open a Sikuli Script」ダイアログ
では、別名で保存します。SikuliX開発画面のメニュー「ファイル」をクリックし(図4➊)、「名前を付けて保存」をクリックします(図4❷)。
図4 名前を付けて保存
「Save a Sikuli Script」ポップアップが出ますので、フォルダ名に「JB100106」と書き加えて(図5➊)、「Save」をクリックしてください➋。
図5 保存ダイアログ
準備2:すべてのファイルを削除しましょう
SikuliXが作ったテキストファイルは削除してください(図6)。
図6 デスクトップ上のファイル
デスクトップ上に「Hello.txtとHello2.txt」があるとします。ソースコードウィンドウのHello.txtの画像をクリックすると図7❶、「パターン設定」画面が起動します。「マッチングプレビュー」タブをクリックします❷。
Hello.txtと似た画像があればターゲットとしてマッチングされます。この場合はHello2.txtもマッチングされています。マッチングされているかどうかは赤色で表示されますのでわかります。画面したにマッチング精度が表示されており、デフォルトは0.7(70%)です。
図7 マッチングプレビュー(1)
このマッチング精度を上げてみましょう。マッチング精度を上げるとHello.txtだけがマッチングするようになりました(図8)。精度が決まったら、「OK」をクリックして確定しましょう。
図8 マッチングプレビュー(2)
プログラム開発
2行目にリスト1のプログラムを記述してください。tryの位置はインデントしてください。入力し終わるとソースコードウィンドウは図9のようになります。
try:
except FindFailed, e:
popup(u"Hello.txtの画像が見つかりませんでした")
リスト1 日本語であいさつを書き込むプログラム
例外処理に使う構文です。tryからexceptに挟まれた「tryブロック」内で例外が発生したら、except以下の処理が行われてます。リスト1では、try:のあとのプログラムでFindFaild例外(画像が見つからないエラー)が発生したら、「Hello.txtの画像が見つかりませんでした」というポップアップが表示されます。
図9 現在のソースコードウィンドウ
図10の部分をtry:の下の行に移動します。移動した青枠のプログラムはインデントします。インデント後は図11のようになります。
図10 tryブロックの作成
図11 現在のソースコードウィンドウ
実行
保存してから実行してください。Hello.txtがデスクトップ上にないので、エラーが発生し、図12のポップアップが表示されます❶。「OK」をクリックしてポップアップを閉じてください❷。
図12 例外のポップアップ
まとめ
このページでは例外処理を学びました。どんなプログラムでも必ず例外が発生する可能性がありますので、例外処理は非常に大切です。
例外処理を身に付けたら、基本的なプログラミングを身に付けたと言えます。これで「RPA超入門」は終了です。
おめでとうございます!
さらに本格的にSikuliXを利用してRPAを構築したい方には、私の著書「オープンソースで作る!RPAシステム開発入門 設計・開発から構築・運用まで」をおすすめします。