こんにちは、えあーです。
プログラミングが行き詰まって、さじを投げたくなることありますよね。
ということで今日は匙を投げる方法をお伝えします。
基本方針
例外処理を用います。
例外を投げるときのキーワードは「throw」なので、
これをうまく使えばさじが投げられるわけです。
言語によって色々投げられますが、
よくあるのは例外クラスを投げる方法です。
例外クラスは自作のものでも構わないので、
匙を作れば匙を投げられるという寸法です。
さじを作る
ということで作りましょう。
とりあえずC++を使います。
1 2 3 |
class SpoonException{ }; |
できました。
まさに匙です。
一応例外クラスなのでExceptionはつけておく派です。
実際にはstd::exceptionかstd::runtime_errorを継承するほうがいいのですが、
今回は別に匙を投げるだけなのでどうでもいいです。
ところで何もメッセージが出ないのは悲しいので、適当に何か出すようにしましょう。
javaだとprintStackTraceだったりtoStringのオーバーライドで色々出せるのですが、
C++だと適当になんかやってやる必要があります。
なんかwhat()関数作ってコンストラクタで初期設定したメッセージを返したりするのが多い印象です。
ただし今回は匙を投げる瞬間にメッセージが出るべきだと思うので、
例外クラスとしてはおかしい気がしますが例外クラスのコンストラクタでメッセージが出るようにしましょう。
1 2 3 4 5 6 7 |
class SpoonException{ public: SpoonException() { std::cout << "もう無理 ポイ(・・*)ノ ⌒ρ" << std::endl; } }; |
ということでSpoonExceptionを呼ぶとメッセージが出るようになりました。
文字通り匙を投げているわけです。
実際に投げてみる
あとは実際に匙を投げてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> class SpoonException{ public: SpoonException() { std::cout << "もう無理 ポイ(・・*)ノ ⌒ρ" << std::endl; } }; int main() { try{ throw SpoonException(); } catch(SpoonException e){ } return 0; } |
mainでいきなりさじを投げるという頭のおかしいコードになりましたがまぁいいです。
とりあえず実際に匙を投げてみて、文字列が表示できることが確認できました。
ちなみにこのコード、
投げた匙を受け取ってはもらえますが対処は何もしてくれません。
ブラック企業臭がします。大丈夫かな。
まとめ
みんなも積極的にさじを投げよう!
コメント
[…] 【プログラミング】さじを投げる […]