OptionParser は定義に反するオプションの与え方をすると例外を発生しちゃうんだけど、こんな書き方で対処できる。まぁ、optparse チュートリアルとマニュアルの例外処理のところを読めば誰でも分かるんですけど。 require 'optparse' opt = OptionParser.new() opt.on( '-f filename' ) { |src| @srcpath = src } begin opt.parse!( ARGV ) rescue => err puts err.to_s end チュートリアルには InvalidOption だけ書かれていたが、実際には InvalidOption未定義のオプションを指定したMissingArgument引数の必要なオプションに引数を与えなかったで、いずれにせよ rescue では特に何も記述せずに補足でき、補足した例