Script cannot detect that app.openCloudDocument failed
en
When an error occurs during the execution of openCloudDocument, Illustrator forces a message in a dialog.
The message is something like this. Not sure what it would be displayed in English.
Cannot open file.
The current account does not have access permission to this file. Contact the owner for more details.
![openclouderror1.png](openclouderror1.png)
The message cannot be circumvented by enclosing it in a “try” syntax, nor can the error be caught in a “catch” statement. In other words, this message may stop the batch process.
The ideal behavior is to be able to catch an error without a dialog box appearing when enclosed in a “try” statement.
Errors can occur, for example for this reason
* A non-existent path is specified in the argument
* The user does not have permissions to open the specified path
Environment
- Illustrator 2025 (29.1.0)
- macOS 12.7.5 (Apple Silicon)
Expected result
If the “try” syntax is enclosed, no message dialog will appear and the error can be caught.
Actual result
A message dialog is forced to appear, ignoring the “try” syntax. Errors cannot be caught.
Script to execute
try {
app.openCloudDocument('Some nonexistent path.aic') ;
} catch(e) {
alert(e) ;
}
Workaround
var originalUserInteractionLevel = app.userInteractionLevel ;
try {
app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS ;
var doc = app.openCloudDocument('Some nonexistent path.aic') ;
doc.name ; // error trap
} catch(e) {
var errorMessage ;
if(e.number === 9000) {
errorMessage = 'Cannot open file. \nThe current account does not have access permission to this file. Contact the owner for more details.' ;
} else {
errorMessage = e.message ;
}
alert(errorMessage) ;
app.userInteractionLevel = originalUserInteractionLevel ;
}
Attached files
- openclouderror1.png
ja
app.openCloudDocumentに失敗したことをスクリプトは感知できない
openCloudDocument実行中にエラーが起きたとき、Illustratorはダイアログでメッセージを強制的に発動します。
メッセージは次のとおりです。
ファイルを開くことができません。
ログインしたアカウントにこのファイルのアクセス権がありません。詳しくは、所有者にお問い合わせください.
![openclouderror1.png](openclouderror1.png)
try構文で囲っていても、そのメッセージを回避することはできず、エラーがcatch文の中でcatchされることもありません。つまり、このメッセージはバッチ処理を止める可能性があります。
try構文で囲ったらダイアログは出ず、エラーをcatchできるのが理想的な動作です。
エラーは例えばこのような理由で起きます。
* 引数に存在しないパスを指定した
* 指定したパスを開くためのパーミッションをユーザーが持っていない
環境
- Illustrator 2025(29.1.0)
- macOS 12.7.5(Apple Silicon)
期待する結果
try構文で囲ったらメッセージのダイアログは出ず、エラーをcatchできる。
実際の結果
try構文を無視して強制的にメッセージのダイアログが出る。エラーはcatchできない。
実行するスクリプト
try {
app.openCloudDocument('Some nonexistent path.aic') ;
} catch(e) {
alert(e) ;
}
回避策
var originalUserInteractionLevel = app.userInteractionLevel ;
try {
app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS ;
var doc = app.openCloudDocument('Some nonexistent path.aic') ;
doc.name ; // error trap
} catch(e) {
var errorMessage ;
if(e.number === 9000) {
errorMessage = 'Cannot open file. \nThe current account does not have access permission to this file. Contact the owner for more details.' ;
} else {
errorMessage = e.message ;
}
alert(errorMessage) ;
app.userInteractionLevel = originalUserInteractionLevel ;
}
添付したファイル
- openclouderror1.png