satocchiaブログ

satocchiaブログ

PR

×

キーワードサーチ

▼キーワード検索

カレンダー

コメント新着

tomoZo@ Re:Pale Moon日本語化トラブル(06/06) はじめまして。 28.16.0でまたもや提供さ…
satocchia @ Re[1]:Pale Moon日本語化トラブル(06/06) zui_9さんへ 本日、確認しました。ようや…
zui_9 @ Re:Pale Moon日本語化トラブル(06/06) 上記リンク「Githubのプロジェクト」の左…
わたなべ@ Re:powershellコンソール、見づらくありませんか?(08/26) 初めまして、この情報最高です! 背景を白…
y__@ Re:uwscでGUIフォーム(05/12) UWSC 仮掲示板から飛んできました。 HTAで…
2017.07.24
XML
カテゴリ: powershell
次のスクリプトで、除算エラーが try & catch できないので悩んでいました。

try{
    $a=(1/0)
}catch {
    "割れない"
}
0 で除算しようとしました。
発生場所 行:2 文字:11
+     $a=(1/ <<<< 0)
    + FullyQualifiedErrorId : RuntimeException


  1. powershellは単純なインタプリタではなく、一度コンパイルされた後解釈実行する
  2. エラー処理が可能なのは後段の解釈実行時のみで、コンパイル時のエラーは捕捉されない
という事実が分かりました。
参考
上の例では、変数aへの代入は定数式なので、コンパイル時に決定してしまう。なので、エラートラップは発動しない、というわけ。
これを捕捉したかったら、次のように書けばいいのでした。

try{
    $a=iex "(1/0)"
}catch {
    "割れない"
}





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2017.07.24 08:16:51
コメントを書く
[powershell] カテゴリの最新記事


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: