スパム対策として書込み時にID/PWを要求されますが、ローマ字で ほげ/ホゲ で書き込めるようになります。

try 〜 catch でエラーハンドリング

  • ページ: ScriptSample
  • カテゴリー: その他
  • 投稿日: 2007-01-02 23:46:29 (火)

メッセージ

vim には Java や C++ などと同じような try 〜 catch によるエラー検出方法がある。

例えば、タグジャンプのように失敗する可能性があるが、
成功するかどうか事前にわからないコマンドを使う場合は、
try 〜 catch で囲んでおけば、成功/失敗を検出することができる。

以下は、タグジャンプをして失敗したら tags を作りなおすかどうか
問い合わせる関数。

function! TryTag(ident)
  try
    exe "sta " . a:ident
  catch 
    echo "タグが見つかりません: " . a:ident
    if input("tags を作りなおしますか?[y/N]: ") =~? "y"
      !ctags -R .
      exe "sta " . a:ident
    endif
  endtry 
endfunction


使い方

:call TryTag("main")


次のように catch する例外を指定することができる。

:catch /^Vim:Interrupt$/	" catch interrupts (CTRL-C)
:catch /^Vim\%((\a\+)\)\=:E/	" catch all Vim errors
:catch /^Vim\%((\a\+)\)\=:/	" catch errors and interrupts
:catch /^Vim(write):/		" catch all errors in :write
:catch /^Vim\%((\a\+)\)\=:E123/	" catch error E123
:catch /my-exception/		" catch user exception
:catch /.*/			" catch everything
:catch				" same as /.*/

finally や throw も使える。
より詳しくは

:h :try

を参照。





トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-10-14 (火) 01:13:17 (1350d)