X



プログラミング初心者あるある
■ このスレッドは過去ログ倉庫に格納されています
0001以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:21:14.308ID:/ROWZKsr0NIKU
例外処理で途端にやる気なくなる…
exなんとか…
0002以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:21:46.300ID:/ROWZKsr0NIKU
try catch(ex exなんとか)
0003以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:21:53.129ID:/ROWZKsr0NIKU
逆か?
0004以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:23:02.628ID:hIeKM9ZP0NIKU
最初に例外処理を扱うのはファイル入出力か
そりゃ当然だろ
お前のプログラムとファイルの間にはどんな邪魔が入るか分からんからな
0005以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:26:44.760ID:UFU1EB2Q0NIKU
俺が使う分には問題ないからヨシ!
0006以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:26:45.969ID:KAR2jWEmaNIKU
初心者が例外処理なんかやるか?
逆に初心者はヘタに例外処理せん方がええで
0007以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:27:01.660ID:/ROWZKsr0NIKU
いやテキストボックスに数字入れたいのに文字入ってたりするときだけど?
0009以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:28:25.482ID:hIeKM9ZP0NIKU
>>7
そんなの強制終了する必要が無いんだから例外処理なんて必要がないだろ
何か間違ってる
0010以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:28:54.148ID:/ROWZKsr0NIKU
>>8
ifよりtry catchの方がいいんじゃないの?
こういうときってifなの?
0011以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:28:59.527ID:UFU1EB2Q0NIKU
こういう用語用法間違いも初心者あるあるだよな
0012以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:29:48.343ID:/ROWZKsr0NIKU
なんでtry catchはダメなの?
0014以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:30:33.159ID:hIeKM9ZP0NIKU
>>12
例外処理ってのはプログラムで対応できない問題に対して強制終了することだぞ
なにか勘違いしてんじゃん
0016以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:32:22.093ID:/ROWZKsr0NIKU
>>13
これ
内部で受け取った文字列をintへ変換してる
このときってif使うのが正解なのか?
0018以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:35:10.588ID:/ROWZKsr0NIKU
>>14
この場合はif使うのか?
lf (文字列が数字であればってこと?)
でもテキストボックスは数字だけどテキスト(文字として拾う可能性があるのでは?)
0019以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:35:55.950ID:/ROWZKsr0NIKU
じゃあどういうときがtry catchなの?
0020以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:36:57.369ID:0968B5gj0NIKU
ただのnumericチェックtry なんかやらんわ
用意された関数か、正規表現でチェックするのはif
想定外のエラーをtryで拾う
0022以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:38:49.631ID:d1HZ2/XvaNIKU
まあテキストボックスの文字列をparseIntして例外発生してエラーメッセージ表示とかはありうるな。
余計な例外までキャッチしたらダメやで。
0023以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:40:16.733ID:0968B5gj0NIKU
チェック省略して強制変換してエラー起きたら「何らかのエラー」は手抜きすぎ
ユーザーからしたら「何らかのエラー」言われても意味分からんよ
0024以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:40:50.077ID:/ROWZKsr0NIKU
try catch{数字を入力してください}
より
elsif{数字を入力してください}
の方がいいの?
0026以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:41:25.149ID:/ROWZKsr0NIKU
>>25
というと?
0027以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:42:12.626ID:0968B5gj0NIKU
>>24
何を参考にしてるか分からんけど教材を変えろ
0028以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:42:13.829ID:SU4dWX3X0NIKU
いや整数に変換できなかったら例外キャッチしろよ
致命的なエラーだろ
0029以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:43:53.346ID:/ROWZKsr0NIKU

どっちが正しいの?
>>27
まず教材見てない
これユーザーの任意にテキスト変えられるから例外処理いるなぁ…って思っただけ
0030以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:45:28.186ID:hIeKM9ZP0NIKU
ユーザーは数字を整数で表したいときがあるんだ
俺にとって0とはあの事なんだって人がいる
そう言う人が現れた時もちゃんとあを0に変換するようなプログラミング能力が必要なのね
0031以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:45:30.259ID:1K9dQfLR0NIKU
>>26
なんの言語が知らんが
try{
 int num
 String s=Textbox.val()
 if(sが数値なら)
  num=s.pareseInt()
 else
  //入力が数値じゃない

}catch(エラー){
//何らかのエラー
}
0032以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:46:54.721ID:SU4dWX3X0NIKU
整数が必要でその整数がないと処理を継続できないならキャッチしろ
0034以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:48:51.741ID:vHdgbikD0NIKU
提供されてるプログラム呼び出すなら普通にtry catch使うよ
api「てめー、そんなことすんじゃねーよExceptionスローするぞオラァ」
って言われるから後はお前の好きなようにするだけ
「さっせんw上のプログラムに返事返しますわw」でもいいし
>>1の設計クソだな!事前にチェックしてどうにかしろや!俺もExceptionスローしてやるわ!スローするのもお前が書いたんだけどなw」でもいいしな
0035以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:49:58.403ID:/ROWZKsr0NIKU
>>34
何いってんだこいつ…
0036以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:51:14.730ID:/ROWZKsr0NIKU
もうTry Catchでいいよ
else書く方もめんどくさいし
0037以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:51:32.003ID:/ROWZKsr0NIKU
結局やる気なくなることには変わらないしな
0039以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:53:50.510ID:hIeKM9ZP0NIKU
>>36
君の作ったプログラムはユーザーがちょっとミスっただけで強制終了するようなものなんだぞ
優しさのかけらもない製品になるんだ
0040以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:54:07.064ID:/ROWZKsr0NIKU
>>38
どっちもどっちだろ…
Try Catchの方がまだ楽かなぁって感じ
0041以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:54:28.779ID:SU4dWX3X0NIKU
>>33
他の入力もifでチェックしてまとめてエラー出すってことか?
0042以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:54:55.482ID:/ROWZKsr0NIKU
>>39
だからTry Catchでいいじゃんって話なんだが?
まぁ実装するの面倒だけど
0044以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:56:17.297ID:/ROWZKsr0NIKU
>>43
めんどくさくない方で使い分ける
つまりこのときはTry Catch
0047以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:58:39.277ID:/ROWZKsr0NIKU
止まらなくね?
そのメソッドが中止になるだけじゃね?
もう一度ボタン押すと実行されるくね?
違うの?
0048以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 14:58:52.879ID:/ROWZKsr0NIKU
>>46
なぜ?
0052以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 15:02:15.433ID:/ROWZKsr0NIKU
>>50
それってifも同じじゃないの?
てか今の実装はボタン1つで実行するパターン
0053以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 15:04:14.329ID:SU4dWX3X0NIKU
>>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
0055以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 15:08:27.976ID:/ROWZKsr0NIKU
>>54
それでよくね?
文字(aやた)を数字に変えてもしょうがないでしょ
0058以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 15:37:47.748ID:/ROWZKsr0NIKU
>>57
流石にw
0059以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 16:02:11.966ID:hPL3SKLKMNIKU
目的もなく始めてすぐやめる
0060以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 16:02:32.139ID:/ROWZKsr0NIKU
>>59
ワロタ
0061以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 16:08:08.059ID:LFc1rE8a0NIKU
なんでもかんでもcatchしまくるのはやったなぁ
0062以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 16:09:52.164ID:LFc1rE8a0NIKU
>>13
tryparseシラねぇのなら
いつものc#じゃないのか…
0063以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 16:41:13.372ID:+WQ8vmDE0NIKU
LBYL、FAFPってやつかね
会社やプロジェクトによっても基準変わるだろう
個人ならどっちでも良いかと
0064以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 17:13:24.899ID:KrUxTOlArNIKU
例外処理ってそんなめんどいものかね
網羅的にやるならしんどいけど
むしろエラーを途中で返してくれるんだから便利まである
0065以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/08/29(月) 17:14:07.719ID:+WQ8vmDE0NIKU
×FAFP
○EAFP
タイポ
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況