トップページ > プログラム > 2016年02月20日 > v2eSHxb5

書き込み順位&時間帯一覧

11 位/236 ID中時間01234567891011121314151617181920212223Total
書き込み数0000301001000000000000005



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【JavaScript】スクリプト バトルロワイヤル53【php,py,pl,rb】 [無断転載禁止]©2ch.net

書き込みレス一覧

【JavaScript】スクリプト バトルロワイヤル53【php,py,pl,rb】 [無断転載禁止]©2ch.net
375 :デフォルトの名無しさん[sage]:2016/02/20(土) 04:38:36.03 ID:v2eSHxb5
>>372
例外は想定外の自体が起きたときに使うもの。
そういうときに使うものではない。

ただしこういう書き方ならOK

function getInputData() {
 var data = prompt()
 if (data == null) { throw "未入力"
}
(function(){
 try {
  getInputData()
 } catch(e) {
  alert( e.message + 'によるエラー終了。');
 }
})()
【JavaScript】スクリプト バトルロワイヤル53【php,py,pl,rb】 [無断転載禁止]©2ch.net
376 :デフォルトの名無しさん[sage]:2016/02/20(土) 04:43:57.66 ID:v2eSHxb5
途中で書き込んじまった

>>372
例外は想定外の自体が起きたときに使うもの。
そういうときに使うものではない。

ただしこういう書き方ならOK

function getInputData() {
 var data = prompt()
 if (data == null) { throw "未入力" }
 return data
}

(function(){
 try {
  var data = getInputData()
 } catch(e) {
  alert( e.message + 'によるエラー終了。');
 }
})()

関数にラップしただけのようだが何が違うのかというと、関数名が違う。
getInputDataは入力データを返す関数だ。
だから入力データを 必ず 返すのだ。想定外の事態が起きない限り。
想定外の事態かどうかは関数の仕様で決まるし、その仕様が想像できるような関数名にしないといけない。
promptは「文字入力ダイアログを表示する」というものだ。
表示できない何かが起きれば(例えばメモリ不足等)例外になるが、表示できる以上例外になってはいけない。
【JavaScript】スクリプト バトルロワイヤル53【php,py,pl,rb】 [無断転載禁止]©2ch.net
377 :デフォルトの名無しさん[sage]:2016/02/20(土) 04:49:59.54 ID:v2eSHxb5
>>372
> throwだとgotoのように使えますが、gotoのように使ってしまってもいいのでしょうか?

throwをgotoの用に使うのは不可能だ。

gotoがだめというのは、ループの外から中にジャンプしたり
脈絡なくどこにでもジャンプできるからだ。

goto禁止と言われたのは過去のことで、今は悪いgotoの使い方がだめだと言われている。
C言語でも悪くないgotoの使い方は許容されているぐらいだ。

gotoという名前で良いか悪いかが決まるのではなく、その動きで決まる。
throwはgotoの良い使い方の動きしかできない。
だからgotoの悪い使い方のように使うことは不可能。

ただし>>372は別の理由(>>376)でだめな使い方だ。
【JavaScript】スクリプト バトルロワイヤル53【php,py,pl,rb】 [無断転載禁止]©2ch.net
379 :デフォルトの名無しさん[sage]:2016/02/20(土) 06:02:50.67 ID:v2eSHxb5
>>378
リーダブルコード読んでね。
名前つけるのは重要なことだから。
【JavaScript】スクリプト バトルロワイヤル53【php,py,pl,rb】 [無断転載禁止]©2ch.net
381 :デフォルトの名無しさん[sage]:2016/02/20(土) 09:48:56.82 ID:v2eSHxb5
>>372
理由書かないと当然信じられないよねw


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。