
No.5ベストアンサー
- 回答日時:
>質問の追加で、つまり、「rescue => e でeにエラーを格納しています。
」の所は、「'original error'」と、「TypeErrorメッセージ」がeに格納されているということでしょうか?はい、そうです。
No.4
- 回答日時:
>質問①raiseの引数が無い時は、TypeErrorのエラーメッセージが表示されるということですよね?
回答:
はい、何故、TypeErrorのエラーメッセージが表示されるかいうと、
rescue => e でeにエラーを格納しています。
このeの中には補足したエラーが格納されています。
それは、3行目で発生させた raise TypeError, 'original error' のエラーです。
raiseの引数が無い時は、このeの内容で、エラーを再度発生させます。
従って、TypeErrorのエラーメッセージが表示されます。
>質問②「3行目と同じ内容のエラーになります」というのは、どういう意味なのでしょうか?
回答:質問①の回答で述べた通り、3行目で発生させた raise TypeError, 'original error' と同じエラー
という意味です。
>後、「補足した例外と同じ例外を発生させる」というのは、どういう事でしょうか?
回答:質問①の回答で回答済みです。
補足した例外はeであり、eの内容で例外を発生させるので、
「補足した例外と同じ例外を発生させる」ことになります。
No.3
- 回答日時:
C:/samples/samples/08_03/raise.rb:3:in `<main>': original error (TypeError)
の個所は、raise を引数なしで、行った為、補足した例外と同じ例外を発生させるため、このようなメッセージになります。
(3行目と同じ内容のエラーになります)
raise TypeError, 'original error'
^^^^^^^^^^^^^^^^^^^^^^^^^^^
の個所については、申し訳ありませんが、
何故このエラーメッセージが表示されるのかはわかりませんでした。
(3行目でraiseした内容が表示されると思われます。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ruby loopメソッド 変数
Ruby
-
ruby クラス・オブジェクト・インスタンス
Ruby
-
ruby begin句
Ruby
-
-
4
Ruby newメソッド
Ruby
-
5
ruby OpenURI::Meta
Ruby
-
6
ruby loopメソッド 変数(再喝)
Ruby
-
7
Ruby require ライブラリー
Ruby
-
8
ルビー言語 ライブラリー 追記
Ruby
-
9
ruby 配列
Ruby
-
10
ruby while式
Ruby
-
11
ruby ensure句
Ruby
-
12
HTML&CSS メディアクエリ
HTML・CSS
-
13
HTML&CSSについて。
HTML・CSS
-
14
HTML&CSS メディアクエリについて。
HTML・CSS
-
15
HTML &CSSとHTML5&CSS3 違い
HTML・CSS
-
16
Ruby 格納
Ruby
-
17
ルビー言語 csvファイル part2
Ruby
-
18
ルビー言語 csvファイル 続き
Ruby
-
19
ルビー言語 ライブラリー
Ruby
-
20
ルビー言語 ライブラリー(再々渇)
Ruby
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSSのhtmlへの紐付けについ...
-
rubyでじゃんけんのプログラム...
-
pythonエラー
-
1、Rstudioで回帰直線を求める...
-
あせんうぶり言語
-
pythonのerrorコード
-
三項でたとえば交換って
-
なんで if __name__ == "__main__"
-
パイソンのクラスについて
-
英数字を含む文字列(0-9,A-Z)...
-
プロセシングの質問です。
-
IDLE.Shell 3.10.0
-
じゃんけんのプログラムを作っ...
-
符号付整数の演算結果を答えよ ...
-
実行時エラー450:引数の数が一...
-
(再質問)エクセルのマクロボ...
-
Ruby require ライブラリー
-
ruby OpenURI::Meta
-
ruby while式
-
ruby loopメソッド 変数(再喝)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSSのhtmlへの紐付けについ...
-
1、Rstudioで回帰直線を求める...
-
(再質問)エクセルのマクロボ...
-
100万件越えCSVから条件を満た...
-
パソコンのスクリーンセーバー...
-
Ruby require ライブラリー
-
ruby OpenURI::Meta
-
英数字を含む文字列(0-9,A-Z)...
-
ビーリアルのユーザー名を変え...
-
教えてください
-
pandasでsqlite3にテーブル作成...
-
Accessで文字列のバイト数読み込み
-
VBScriptでExcel(2019)上のデー...
-
ruby while式
-
WSLのUbuntuで、Railsのインス...
-
ruby loopメソッド 変数(再喝)
-
pythonエラー
-
クリスタルレポートで困ってい...
-
実行時エラー450:引数の数が一...
-
WIN11にオフイスを複数入れるこ...
おすすめ情報
コマンドプロンプトが表示した
"original error"
「C:/samples/samples/08_03/raise.rb:3:in `<main>': original error (TypeError)
raise TypeError, 'original error'
^^^^^^^^^^^^^^^^^^^^^^^^^^^」
についての、鉤括弧のエラーメッセージについての、疑問です。なぜ、このようなエラーメッセージが出てくるのでしょうか?
raiseでは、「例外が発生する処理」と同じ例外を発生させる(raiseを引数無しの場合)
と書いてあるので、鍵括弧の部分は、TypeErrorが表示されて、エラーで終了するという事でしょうか?
教えていただけると幸いです。
一応プログラムを載せておきます。
begin
# TypeError例外を発生
raise TypeError, 'original error'
rescue => e
p e.message
# 例外処理後に例外を再発生
raise
end
というプログラムからの質問なのです。
このプログラムのraiseについての、質問なのですが。
コマンドプロンプトの実行結果は、NO.1の回答の補足に記述しました。
教えていただけると幸いです。
すみません。分かりにくかったですね。
raise.rbの内容は、
begin
# TypeError例外を発生
raise TypeError, 'original error'
rescue => e
p e.message
# 例外処理後に例外を再発生
raise
end
です。
教えていただけると幸いです。
もう少し分かりやすく書くべきでした。大変失礼しました。
要するに、質問①raiseの引数が無い時は、TypeErrorのエラーメッセージが表示されるということですよね?
質問②「3行目と同じ内容のエラーになります」というのは、どういう意味なのでしょうか?
後、「補足した例外と同じ例外を発生させる」というのは、どういう事でしょうか?
以上2点について、教えていただけると幸いです。
質問の追加で、つまり、「rescue => e でeにエラーを格納しています。」の所は、「'original error'」と、「TypeErrorメッセージ」がeに格納されているということでしょうか?
教えていただけると幸いです。