プログラミング初心者あるある
■ このスレッドは過去ログ倉庫に格納されています
最初に例外処理を扱うのはファイル入出力か
そりゃ当然だろ
お前のプログラムとファイルの間にはどんな邪魔が入るか分からんからな 初心者が例外処理なんかやるか?
逆に初心者はヘタに例外処理せん方がええで いやテキストボックスに数字入れたいのに文字入ってたりするときだけど? >>7
ifで判断すりゃいいじゃん
例外投げる必要がない >>7
そんなの強制終了する必要が無いんだから例外処理なんて必要がないだろ
何か間違ってる >>8
ifよりtry catchの方がいいんじゃないの?
こういうときってifなの? >>9
文字列をpreaseIntしようとして例外吐かれてるんだろ >>12
例外処理ってのはプログラムで対応できない問題に対して強制終了することだぞ
なにか勘違いしてんじゃん >>10
わからないならわかる方法で実装しろ
そもそもその程度ならエラー処理するまでもない >>13
これ
内部で受け取った文字列をintへ変換してる
このときってif使うのが正解なのか? >>16
まず入力規則に沿ってるかどうかifで判定しろ
それから変換
それでも取り除けないエラーをtry catchするんだよ >>14
この場合はif使うのか?
lf (文字列が数字であればってこと?)
でもテキストボックスは数字だけどテキスト(文字として拾う可能性があるのでは?) ただのnumericチェックtry なんかやらんわ
用意された関数か、正規表現でチェックするのはif
想定外のエラーをtryで拾う >>19
想定しないエラー、続行不可能なエラーの時 まあテキストボックスの文字列をparseIntして例外発生してエラーメッセージ表示とかはありうるな。
余計な例外までキャッチしたらダメやで。 チェック省略して強制変換してエラー起きたら「何らかのエラー」は手抜きすぎ
ユーザーからしたら「何らかのエラー」言われても意味分からんよ try catch{数字を入力してください}
より
elsif{数字を入力してください}
の方がいいの? >>24
何を参考にしてるか分からんけど教材を変えろ いや整数に変換できなかったら例外キャッチしろよ
致命的なエラーだろ ?
どっちが正しいの?
>>27
まず教材見てない
これユーザーの任意にテキスト変えられるから例外処理いるなぁ…って思っただけ ユーザーは数字を整数で表したいときがあるんだ
俺にとって0とはあの事なんだって人がいる
そう言う人が現れた時もちゃんとあを0に変換するようなプログラミング能力が必要なのね >>26
なんの言語が知らんが
try{
int num
String s=Textbox.val()
if(sが数値なら)
num=s.pareseInt()
else
//入力が数値じゃない
}catch(エラー){
//何らかのエラー
} 整数が必要でその整数がないと処理を継続できないならキャッチしろ >>28
ifで処理してほかの入力規則と一緒にアラート出すだろ 提供されてるプログラム呼び出すなら普通にtry catch使うよ
api「てめー、そんなことすんじゃねーよExceptionスローするぞオラァ」
って言われるから後はお前の好きなようにするだけ
「さっせんw上のプログラムに返事返しますわw」でもいいし
「>>1の設計クソだな!事前にチェックしてどうにかしろや!俺もExceptionスローしてやるわ!スローするのもお前が書いたんだけどなw」でもいいしな もうTry Catchでいいよ
else書く方もめんどくさいし >>36
君の作ったプログラムはユーザーがちょっとミスっただけで強制終了するようなものなんだぞ
優しさのかけらもない製品になるんだ >>38
どっちもどっちだろ…
Try Catchの方がまだ楽かなぁって感じ >>33
他の入力もifでチェックしてまとめてエラー出すってことか? >>39
だからTry Catchでいいじゃんって話なんだが?
まぁ実装するの面倒だけど >>40
使い分けろよ
>>39
別にcatchしたからって強制終了が必要なわけじゃないぞ
適切に処理して戻せばいい >>43
めんどくさくない方で使い分ける
つまりこのときはTry Catch >>41
エラーというかアラート
ここの入力間違ってますよってやつ
一つのcatchブロックだと一つエラーしたら止まるだろ >>44
両方使うのが正しいが
めんどくさいならifだけで処理するのが正解だぞ 止まらなくね?
そのメソッドが中止になるだけじゃね?
もう一度ボタン押すと実行されるくね?
違うの? >>45
俺は例外でぜんぶやるかなぁ
それでエラーが発生してたら発生した例外まとめてアラート出す
ifだと漏れる可能性があるし >>47
10個くらい入力があるのに最初の入力でエラーになったらその後の入力チェックは飛ばされるだろ
catchブロック10個書いてもいいが流石に冗長すぎる >>50
それってifも同じじゃないの?
てか今の実装はボタン1つで実行するパターン >>49
ちなPythonだと
try:
n1 = int(s1)
except ValueError as e:
errors.append(e)
try:
n2 = int(s2)
except ValueError as e:
errors.append(e)
if len(errors):
show_warning(errors)
こうかな
こんなコード書いたことないけどw >>52
ifなら想定する例外は事前処理して進める
try catchだとエラー発生した瞬間その先の処理は進まずに止まる >>54
それでよくね?
文字(aやた)を数字に変えてもしょうがないでしょ >>13
tryparseシラねぇのなら
いつものc#じゃないのか… LBYL、FAFPってやつかね
会社やプロジェクトによっても基準変わるだろう
個人ならどっちでも良いかと 例外処理ってそんなめんどいものかね
網羅的にやるならしんどいけど
むしろエラーを途中で返してくれるんだから便利まである ■ このスレッドは過去ログ倉庫に格納されています