例外にまつわる内容であれば、不満でもネタでも主張でもご自由に。
@throws Threadが100を超えましたException
スレッドが埋まってしまった場合に送出されます。
>>980 を超えたら新しいスレを準備してください。
@see 前スレ
例外を正しく使えないプログラマ多いね。 その6
http://hibari.2ch.net/test/read.cgi/prog/1298059471/
探検
例外を正しく使えないプログラマ多いね。 その7
■ このスレッドは過去ログ倉庫に格納されています
2011/05/29(日) 14:17:29.97
2011/05/29(日) 14:58:56.80
むしろ例外の扱いが微妙なC++のほうが話題多そう。
2011/05/29(日) 15:00:57.36
javadoc形式のタグは他言語でも似たような形式で流用されてるの多いしJava前提ってわけじゃなくね
他の書式はXMLドキュメントくらいしか知らんけど
javadocといえば、@throws タグで例外の説明んとこに
「例外を発生させます。」とか「例外が発生した場合。」
とか書く奴が結構多いんだが、これも正しく使えない奴の所業だよな
全く持って説明になってないから、結局何が原因で例外投げるのかがわからないっていう…
勘弁して欲しいわ
他の書式はXMLドキュメントくらいしか知らんけど
javadocといえば、@throws タグで例外の説明んとこに
「例外を発生させます。」とか「例外が発生した場合。」
とか書く奴が結構多いんだが、これも正しく使えない奴の所業だよな
全く持って説明になってないから、結局何が原因で例外投げるのかがわからないっていう…
勘弁して欲しいわ
2011/05/29(日) 15:02:57.48
まともなコードヒントが出ない場合、発生する例外がわかりにくくて手間かかるわ
2011/05/29(日) 19:34:21.83
javadocはもう一段進化するべきだな。
引数とコメントの両方に同じ名前を二度書かせるな。
/**
* Validates a chess move.
* @author John Doe
* @param theFromFile File of piece being moved
* @param theFromRank Rank of piece being moved
* @param theToFile File of destination square
* @param theToRank Rank of destination square
* @return true if a valid chess move or false if invalid
*/
boolean isValidMove(int theFromFile, int theFromRank, int theToFile, int theToRank)
↓
boolean isValidMove /** Validates a chess move. */
(
int theFromFile /** theFromFile File of piece being moved */,
int theFromRank /** theFromRank Rank of piece being moved */,
int theToFile /** File of destination square */,
int theToRank /** Rank of destination square*/
) /** true if a valid chess move or false if invalid */
{
}
ここからドキュメントを生成できるようにしろ。
ちょっと冗長になるだろうが、/** */じゃなくてアノテーションでもいいぞ
引数とコメントの両方に同じ名前を二度書かせるな。
/**
* Validates a chess move.
* @author John Doe
* @param theFromFile File of piece being moved
* @param theFromRank Rank of piece being moved
* @param theToFile File of destination square
* @param theToRank Rank of destination square
* @return true if a valid chess move or false if invalid
*/
boolean isValidMove(int theFromFile, int theFromRank, int theToFile, int theToRank)
↓
boolean isValidMove /** Validates a chess move. */
(
int theFromFile /** theFromFile File of piece being moved */,
int theFromRank /** theFromRank Rank of piece being moved */,
int theToFile /** File of destination square */,
int theToRank /** Rank of destination square*/
) /** true if a valid chess move or false if invalid */
{
}
ここからドキュメントを生成できるようにしろ。
ちょっと冗長になるだろうが、/** */じゃなくてアノテーションでもいいぞ
2011/05/29(日) 19:45:01.86
/**
* Validates a chess move.
* @author John Doe
* @param int theFromFile File of piece being moved
* @param int theFromRank Rank of piece being moved
* @param int theToFile File of destination square
* @param int theToRank Rank of destination square
* @return boolean true if a valid chess move or false if invalid
*/
isValidMove {
}
逆にコメントだけあればよくないか?
* Validates a chess move.
* @author John Doe
* @param int theFromFile File of piece being moved
* @param int theFromRank Rank of piece being moved
* @param int theToFile File of destination square
* @param int theToRank Rank of destination square
* @return boolean true if a valid chess move or false if invalid
*/
isValidMove {
}
逆にコメントだけあればよくないか?
8仕様書無しさん
2011/05/29(日) 23:08:54.75 自動生成で事足りるし、そこまで手間だとは思わんな
しいて言うなら引数名変えるとき追従して欲しいってくらい
コメントの拡張はあくまでもコメント、コードはコードでわけてたほうが、
なんだかんだで見やすい気がするわ。つか、スレチだけどなw
例外へのドキュメントコメントは、まともにかけてる奴殆どいねーわなぁ
それ以外のですら省略されがちだったりするし。酷いとこはほんと酷い(´・ω・`)
しいて言うなら引数名変えるとき追従して欲しいってくらい
コメントの拡張はあくまでもコメント、コードはコードでわけてたほうが、
なんだかんだで見やすい気がするわ。つか、スレチだけどなw
例外へのドキュメントコメントは、まともにかけてる奴殆どいねーわなぁ
それ以外のですら省略されがちだったりするし。酷いとこはほんと酷い(´・ω・`)
2011/05/30(月) 01:06:09.19
つか元々言語とは別もんの機能なんだから、
IDE辺りがコメントの同期をサポートするのが筋だわな。
言語に依存関係に無いはずの別システムのサポート組み込むなんて
ガラパゴス電話の失敗と同じ。
IDE辺りがコメントの同期をサポートするのが筋だわな。
言語に依存関係に無いはずの別システムのサポート組み込むなんて
ガラパゴス電話の失敗と同じ。
10仕様書無しさん
2011/05/30(月) 01:24:34.00 > 言語に依存関係に無いはずの
いや、コメントは依存関係ありまくりだろw
いや、コメントは依存関係ありまくりだろw
11仕様書無しさん
2011/05/30(月) 01:57:31.16 コメントの内容は依存したらいけないだろ。
TCPのデータ領域をTCP階層で監視するようなもんだぞ。
もしjavadoc以外の高性能なツールがでてもjavadocへの
言語サポートが干渉してJavaではそのツールを使えなくなる。
javadocの内容をコメントから外してアノテーションのプラグマとして管理するなら別だろうけど。
TCPのデータ領域をTCP階層で監視するようなもんだぞ。
もしjavadoc以外の高性能なツールがでてもjavadocへの
言語サポートが干渉してJavaではそのツールを使えなくなる。
javadocの内容をコメントから外してアノテーションのプラグマとして管理するなら別だろうけど。
12仕様書無しさん
2011/05/30(月) 02:06:01.57 連動も面倒もどうでもいいから
発生する例外の詳細くらいはちゃんと書いておいてください><
発生する例外の詳細くらいはちゃんと書いておいてください><
13仕様書無しさん
2011/05/30(月) 07:15:12.96 >>11
>コメントの内容は依存したらいけないだろ。
本来そうなんだけど、PostScriptってページ記述言語が有ってじゃな…
>TCPのデータ領域をTCP階層で監視するようなもんだぞ。
FTP...
IPv6に成ったら、FTPは撲滅して、scpかbit torrentに移行すべきだな。
>コメントの内容は依存したらいけないだろ。
本来そうなんだけど、PostScriptってページ記述言語が有ってじゃな…
>TCPのデータ領域をTCP階層で監視するようなもんだぞ。
FTP...
IPv6に成ったら、FTPは撲滅して、scpかbit torrentに移行すべきだな。
16仕様書無しさん
2011/06/04(土) 01:15:13.81 コードで表現できてるのを、コメントで二度書ききなきゃならないコードを、プロは書かない。DRYに反する。素人の糞コード。
コメントで言い訳書かなきゃならんコードをプロは書かない。それを設計とコードで表現する。
クライアントへの契約、を表現するドキュメンテーションコメントのこと言ってるなら、それはIDEがリファクタリングで連動して変換する。手作業の出番なんかない。
めんどくさい手作業をしにゃならん、と感じる状況を手作業でせっせっと勤勉にやってる時点で石器時代の土人。どんだけゆるい思想やプライドで職業ついてんだ、
発想の根本がこの業界にむいてない。
コメントで言い訳書かなきゃならんコードをプロは書かない。それを設計とコードで表現する。
クライアントへの契約、を表現するドキュメンテーションコメントのこと言ってるなら、それはIDEがリファクタリングで連動して変換する。手作業の出番なんかない。
めんどくさい手作業をしにゃならん、と感じる状況を手作業でせっせっと勤勉にやってる時点で石器時代の土人。どんだけゆるい思想やプライドで職業ついてんだ、
発想の根本がこの業界にむいてない。
18仕様書無しさん
2011/06/04(土) 07:11:58.61 IDE好きはJava土方と相場は決まってる
19仕様書無しさん
2011/06/04(土) 11:17:10.25 >>17
>>6-7は3つの点でピントがずれてる
まず1点目
> * @return true if a valid chess move or false if invalid
> boolean isValidMove(int theFromFile, int theFromRank, int theToFile, int theToRank)
何したいコードかよくわからんが、仮にそのコメントで意味が通じる、と
そう仮定するなら、メソッド名をisValidChessMoveと書けばいい。
命名センスがなく、うすうすその自覚があるから、コメントで言い訳したくなるんだろ?
変数名も同様。
7に至っては本末転倒。コードで充分、が結論になるようにかけばいい。
そして2点目
tell, don't askだろ。このコードのクライアントはvalidか尋ねてどーすんの?っていう。
設計がへぼいから、いまいち何したいかわからんコードを書くことになる。
だから、コメントで補わんとにピンとこないだろうという感覚で、
コメントへと逃げたくなるんだろ。
そして3点目。
スレタイの「例外」に全く関係ない。
>>6-7は3つの点でピントがずれてる
まず1点目
> * @return true if a valid chess move or false if invalid
> boolean isValidMove(int theFromFile, int theFromRank, int theToFile, int theToRank)
何したいコードかよくわからんが、仮にそのコメントで意味が通じる、と
そう仮定するなら、メソッド名をisValidChessMoveと書けばいい。
命名センスがなく、うすうすその自覚があるから、コメントで言い訳したくなるんだろ?
変数名も同様。
7に至っては本末転倒。コードで充分、が結論になるようにかけばいい。
そして2点目
tell, don't askだろ。このコードのクライアントはvalidか尋ねてどーすんの?っていう。
設計がへぼいから、いまいち何したいかわからんコードを書くことになる。
だから、コメントで補わんとにピンとこないだろうという感覚で、
コメントへと逃げたくなるんだろ。
そして3点目。
スレタイの「例外」に全く関係ない。
20仕様書無しさん
2011/06/04(土) 11:43:56.74 コメントに「何をするコードか」ばかり書いちゃう奴は修行が足らん
そんなのは命名センスや設計センスがしっかりしていれば、最小限で済む。
それよりコメントには「なぜそのコードが必要か」に重点が置かれていないと意味がない。
最悪「何をするコードか」はコード読めばわかるのでわざわざコメントにかかんで良い。
そんなのは命名センスや設計センスがしっかりしていれば、最小限で済む。
それよりコメントには「なぜそのコードが必要か」に重点が置かれていないと意味がない。
最悪「何をするコードか」はコード読めばわかるのでわざわざコメントにかかんで良い。
21仕様書無しさん
2011/06/04(土) 11:49:39.33 何をしてるのかが分からないコードの多いこと
22仕様書無しさん
2011/06/05(日) 01:12:31.83 >>19
お前はピントがズレていると言ったが、
本当にピントがズレているのはお前の方だ。
コードの中身に文句をつけてどうする。
それはあくまでサンプルであってコードに意味はない。
別にコードの内容を指摘されて悔しいから言っているわけじゃないぞ。
なぜならそのコードはwikipediaから拝借したコードだからだ。
http://ja.wikipedia.org/wiki/Javadoc
お前はピントがズレていると言ったが、
本当にピントがズレているのはお前の方だ。
コードの中身に文句をつけてどうする。
それはあくまでサンプルであってコードに意味はない。
別にコードの内容を指摘されて悔しいから言っているわけじゃないぞ。
なぜならそのコードはwikipediaから拝借したコードだからだ。
http://ja.wikipedia.org/wiki/Javadoc
23仕様書無しさん
2011/06/05(日) 02:02:18.24 コメントというか、関数名の頭に描くべきものは、
例えばman sprintfをして表示されるようなものだ。
つまり、関数の引数の説明とか、
戻り値とか、そういう言うものを書くべきだ。
関数の頭にね。
例えばman sprintfをして表示されるようなものだ。
つまり、関数の引数の説明とか、
戻り値とか、そういう言うものを書くべきだ。
関数の頭にね。
24仕様書無しさん
2011/06/05(日) 02:06:38.87 引用元がどこだろーと、下手なコードが下手なことに変わりはないなw
コード批判はしてるかもしれんが、より本質的には発想批判だろ。
>>6の思考は、同じ名前二度書かせるな→まとめて書いちゃえ
というのが中途半端なんだよ。
コメントなくても通じるコード書けば十分だろ?っていう指摘。
doclet捨ててなおAPIドキュメント作りたいんなら、わかりやすいコードだけ書いて
リフレクションでAPI生成してろよ、
って普通思うんじゃねーの。
無駄だって問題提起しながら、そこで出した解決策がこれまた無駄だから揶揄されてるんだろ。
コード批判はしてるかもしれんが、より本質的には発想批判だろ。
>>6の思考は、同じ名前二度書かせるな→まとめて書いちゃえ
というのが中途半端なんだよ。
コメントなくても通じるコード書けば十分だろ?っていう指摘。
doclet捨ててなおAPIドキュメント作りたいんなら、わかりやすいコードだけ書いて
リフレクションでAPI生成してろよ、
って普通思うんじゃねーの。
無駄だって問題提起しながら、そこで出した解決策がこれまた無駄だから揶揄されてるんだろ。
25仕様書無しさん
2011/06/05(日) 02:13:46.31 > コメントなくても通じるコード書けば十分だろ?っていう指摘。
コードはコメントがなくても通じるかもしれんが、
引数はコメントがなければわからないぞ。
お前は経験がない。知識だけでものを行っとる。
コードはコメントがなくても通じるかもしれんが、
引数はコメントがなければわからないぞ。
お前は経験がない。知識だけでものを行っとる。
26仕様書無しさん
2011/06/05(日) 02:15:25.48 特に戻り値は型しか書いてないから、
名前で意味がわかるなんて不可能だな。
名前で意味がわかるなんて不可能だな。
27仕様書無しさん
2011/06/05(日) 02:22:10.58 それは、名前の付け方が悪いんでねーの?
ってこと。
コメントで書く説明を、書かなくていいよーな引き数名にすれば済むでしょ。
そーいう発想で書いてみ?
キチンとしたコードが書ければ、「おいおいコードに書いてあるだろ?」って
コメント書く時間が無駄に感じるから。
で、コメントにはコードの説明なんかアホらしくて時間の無駄だな、ってのがスタートラインだ。
当然、コメントにはもっと別のことを、書く。
ってこと。
コメントで書く説明を、書かなくていいよーな引き数名にすれば済むでしょ。
そーいう発想で書いてみ?
キチンとしたコードが書ければ、「おいおいコードに書いてあるだろ?」って
コメント書く時間が無駄に感じるから。
で、コメントにはコードの説明なんかアホらしくて時間の無駄だな、ってのがスタートラインだ。
当然、コメントにはもっと別のことを、書く。
28仕様書無しさん
2011/06/05(日) 02:22:27.51 プログラマに平和はないな
29仕様書無しさん
2011/06/05(日) 02:23:28.81 コードを読めば分かるというのは、
逆に言えば、コメントがあればすぐに分かることが
コードを読まないとわならないってことだ。
コードを読む時間が長くなるのなら、
コメントを付けるほうがいい
逆に言えば、コメントがあればすぐに分かることが
コードを読まないとわならないってことだ。
コードを読む時間が長くなるのなら、
コメントを付けるほうがいい
31仕様書無しさん
2011/06/05(日) 02:25:45.7432仕様書無しさん
2011/06/05(日) 02:25:55.45 >>27
> コメントで書く説明を、書かなくていいよーな引き数名にすれば済むでしょ。
> そーいう発想で書いてみ?
じゃあお前はsprintfという関数の引数として
何が使えるかを、どうやって引数名に含めるんだ?
> コメントで書く説明を、書かなくていいよーな引き数名にすれば済むでしょ。
> そーいう発想で書いてみ?
じゃあお前はsprintfという関数の引数として
何が使えるかを、どうやって引数名に含めるんだ?
33仕様書無しさん
2011/06/05(日) 02:33:27.64 double pow(double x, double y)
多分こんな定義に文句をつけて、xとかyとか使うな、 x の y 乗なのか
y の x 乗なのか、わからないだろ。関数の引数名はもっと長く書けとか
的外れな文句を付けてるようなレベルの人だろうな。
ドキュメント読まないで、引数の名前で推測して
コーディングするやつにまともなコードは書けない。
世間で言われている、「コードの内容を示すコメントを書くな」というのは
i++; // iを一増やす
のようなコメント一文 と コード一文 が完全に対応している場合の話だ。
世間で言われていることを鵜呑みにして、本質をちゃんと捉えてない。
多分こんな定義に文句をつけて、xとかyとか使うな、 x の y 乗なのか
y の x 乗なのか、わからないだろ。関数の引数名はもっと長く書けとか
的外れな文句を付けてるようなレベルの人だろうな。
ドキュメント読まないで、引数の名前で推測して
コーディングするやつにまともなコードは書けない。
世間で言われている、「コードの内容を示すコメントを書くな」というのは
i++; // iを一増やす
のようなコメント一文 と コード一文 が完全に対応している場合の話だ。
世間で言われていることを鵜呑みにして、本質をちゃんと捉えてない。
34仕様書無しさん
2011/06/05(日) 02:35:07.58 つか、関数にする理由は、
長いコードを読まなくて済むようにするのが目的なので
コードを読めば分かるというのは、
関数そのものを否定しているのと一緒。
長いコードを読まなくて済むようにするのが目的なので
コードを読めば分かるというのは、
関数そのものを否定しているのと一緒。
35仕様書無しさん
2011/06/05(日) 02:39:33.61 >>32
先に白状しとくと、俺はC使いではないんで、妄想込みだから脳内保管してくれ。
推測するにsprintfは、
フォーマットとかメッセージを例えば渡すんだろ?
だったら、型抜きで書くなら
sprintf(message, format)
あたりだろ。
messageの型はobjectなのか?各型ごとにオーバーロードしてるのか?その辺りのニュアンスはC使いじゃないんでよーわからん。言語特性にあわせてよろしく定義されてるんだろ。
戻りはvoidあたりか?
で、format辺りは文字列でやってんだっけ?そーすると渋々ドキュメンテーションコメント書く系統の設計になりそうだなこりゃ。
ま、こりゃコメント書かんとダメだな、ちっ、っていう例だと思う。
先に白状しとくと、俺はC使いではないんで、妄想込みだから脳内保管してくれ。
推測するにsprintfは、
フォーマットとかメッセージを例えば渡すんだろ?
だったら、型抜きで書くなら
sprintf(message, format)
あたりだろ。
messageの型はobjectなのか?各型ごとにオーバーロードしてるのか?その辺りのニュアンスはC使いじゃないんでよーわからん。言語特性にあわせてよろしく定義されてるんだろ。
戻りはvoidあたりか?
で、format辺りは文字列でやってんだっけ?そーすると渋々ドキュメンテーションコメント書く系統の設計になりそうだなこりゃ。
ま、こりゃコメント書かんとダメだな、ちっ、っていう例だと思う。
36仕様書無しさん
2011/06/05(日) 02:52:33.55 >>33
なんか怒らせたっぽいか?すまんな。
だが現場の経験から話してるぞ。
ドキュメンテーションコメント見ながら、コード書く奴がいるのか?を冷静に思い出してみてくれ。
言語そのものといっていい組み込み関数だかAPIだかライブラリの話じゃないぞ?
おまいやおまいの同僚が、昨日や今日書いた、あるいは今さっき修正してコミットしたての、そのコードをだ、
自分があるいはとなりの席の奴が使うとして
ドキュメンテーションコメントを確認して使うのか?それは本当かい?
なんか怒らせたっぽいか?すまんな。
だが現場の経験から話してるぞ。
ドキュメンテーションコメント見ながら、コード書く奴がいるのか?を冷静に思い出してみてくれ。
言語そのものといっていい組み込み関数だかAPIだかライブラリの話じゃないぞ?
おまいやおまいの同僚が、昨日や今日書いた、あるいは今さっき修正してコミットしたての、そのコードをだ、
自分があるいはとなりの席の奴が使うとして
ドキュメンテーションコメントを確認して使うのか?それは本当かい?
37仕様書無しさん
2011/06/05(日) 02:53:57.64 開発プロセス次第かもしれんが、スクラッチ書いて、顧客に見せてフィードバックもらって、設計改善して、、
って出荷できる状態を短期に確保しながら動作して使えるコードを書き続ける現場でさ、
コメントとコードとで重複した情報なんか残してたら、修正速度の足かせにしかならんよ。
コメントとコードなんて乖離したらノイズだしな。
だったら、コードだけで伝わるようにしよーぜっ
てなると思うんだが。おもいらの現場は違うのか?
って出荷できる状態を短期に確保しながら動作して使えるコードを書き続ける現場でさ、
コメントとコードとで重複した情報なんか残してたら、修正速度の足かせにしかならんよ。
コメントとコードなんて乖離したらノイズだしな。
だったら、コードだけで伝わるようにしよーぜっ
てなると思うんだが。おもいらの現場は違うのか?
38仕様書無しさん
2011/06/05(日) 02:54:56.69 コードの内容を素早く把握できるように
コメントを書いておこうぜってなるのが普通
コメントを書いておこうぜってなるのが普通
39仕様書無しさん
2011/06/05(日) 02:58:44.22 >>35
引数の制約もコード見て調べるんか?
例えばベジェ曲線を計算するメソッドが有ったとして
同一座標が重なってはいけないという制約があるとする。
それをコメントで一言
//頂点が重複する場合は例外が発生する
と書けばいいものを、
反復で変化する値を追い分岐の変化を追って
例外に至る原因となる引数を特定するのか。
引数の制約もコード見て調べるんか?
例えばベジェ曲線を計算するメソッドが有ったとして
同一座標が重なってはいけないという制約があるとする。
それをコメントで一言
//頂点が重複する場合は例外が発生する
と書けばいいものを、
反復で変化する値を追い分岐の変化を追って
例外に至る原因となる引数を特定するのか。
40仕様書無しさん
2011/06/05(日) 03:01:16.90 >>34
x コードを読めばわかる
o シグニチャ見ればわかる
だな。
コードコード言いすぎて一つの語を複数の意味で書きちらしたおれのミス。
複雑さを隠蔽するために書くわけだからコード本体を使用者に読ませるつもりは当然ないよ。
x コードを読めばわかる
o シグニチャ見ればわかる
だな。
コードコード言いすぎて一つの語を複数の意味で書きちらしたおれのミス。
複雑さを隠蔽するために書くわけだからコード本体を使用者に読ませるつもりは当然ないよ。
41仕様書無しさん
2011/06/05(日) 03:01:48.56 「頂点が重複する場合は例外が発生するベジェ曲線を計算する関数」って
意味を表す英語の名前にしておけば良い。
意味を表す英語の名前にしておけば良い。
42仕様書無しさん
2011/06/05(日) 03:19:49.38 >>39
その制約を、コードのクライアントが知るべきか?その例外をクライアントが処理すべきかどうか、あたりで変えるかなあ。
つまりバグでしよ?正しいコードじゃおこんねーよ、だったら集約例外でログ吐いとこー方針でAPIには含めない。
業務仕様でしょ?だったらAPIに含める。APIへの含め方は、例外で表現するか、戻りの型?クラス?列挙型?で表現するかは、言語特性次第だな。
実運用上はコードでの表現を第一に考えて「うわーギブアップ!今の俺の実力じゃコ(現実的な時間では)コードで表現出来んわ」となったら、ションボリしながらコメントで言い訳する。で自分にがっかりするw
その制約を、コードのクライアントが知るべきか?その例外をクライアントが処理すべきかどうか、あたりで変えるかなあ。
つまりバグでしよ?正しいコードじゃおこんねーよ、だったら集約例外でログ吐いとこー方針でAPIには含めない。
業務仕様でしょ?だったらAPIに含める。APIへの含め方は、例外で表現するか、戻りの型?クラス?列挙型?で表現するかは、言語特性次第だな。
実運用上はコードでの表現を第一に考えて「うわーギブアップ!今の俺の実力じゃコ(現実的な時間では)コードで表現出来んわ」となったら、ションボリしながらコメントで言い訳する。で自分にがっかりするw
43仕様書無しさん
2011/06/05(日) 03:21:04.64 そうまでして、コメントをスリムにコードでこそ語ろうぜ!という方針の意図は、DRY原則はいうまでもなく、
本当に気をつけて欲しいこと、コードでは表現出来ない設計背景、判断経緯、確実に留意すべき重大な意図が、どーでもいいコメントたちに埋れてしまわないよーに、だよ。
危険な匂いのするコードには、コメントが書かれてる、それもタップリと。
だから読み落としも防げる。そんな感じ。
本当に気をつけて欲しいこと、コードでは表現出来ない設計背景、判断経緯、確実に留意すべき重大な意図が、どーでもいいコメントたちに埋れてしまわないよーに、だよ。
危険な匂いのするコードには、コメントが書かれてる、それもタップリと。
だから読み落としも防げる。そんな感じ。
44仕様書無しさん
2011/06/05(日) 04:18:28.41 >>42
ゼロ除算と同程度の話なんだけどな。普通そんな座標は入れないし。
メソッドを呼び出す側としては当然知っておくべき制約。
普通ゼロ除算をしちゃいけないと説明されるから値を渡す側はみんな割る数に0を
渡さないよう気をつけるだろそれと同じ。
ゼロ除算と同程度の話なんだけどな。普通そんな座標は入れないし。
メソッドを呼び出す側としては当然知っておくべき制約。
普通ゼロ除算をしちゃいけないと説明されるから値を渡す側はみんな割る数に0を
渡さないよう気をつけるだろそれと同じ。
45仕様書無しさん
2011/06/05(日) 04:19:54.44 で、どちらにしろコメントが不要になることはなく、
コメント書くならば、一箇所だけに書けばいいわけで
コメントとコードが分かれていると
同期を取らないといけなくなるから
一つにしろというのが>>6-7なわけだ。
あ、コードの中身はwikipediaの
JavaDocからの引用だからね
コメント書くならば、一箇所だけに書けばいいわけで
コメントとコードが分かれていると
同期を取らないといけなくなるから
一つにしろというのが>>6-7なわけだ。
あ、コードの中身はwikipediaの
JavaDocからの引用だからね
46仕様書無しさん
2011/06/05(日) 04:21:00.15 0で割ったら無限大になる
ライブラリだってあるだろうさ。
ライブラリだってあるだろうさ。
47仕様書無しさん
2011/06/05(日) 04:26:24.0349仕様書無しさん
2011/06/05(日) 10:48:21.66 ここまで例外と無関係な雑談。
50仕様書無しさん
2011/06/05(日) 12:08:10.42 なんか勘違いしてる人がいるようだが、別にコードで全てを語ろうなんて言ってる人はいなくて
その関数が何をする関数なのかは関数名でほとんど解るようにするのがスマートという話だろ。
その関数が何をする関数なのかは関数名でほとんど解るようにするのがスマートという話だろ。
51仕様書無しさん
2011/06/05(日) 12:11:14.09 そして、関数やクラスを作る人の力量は、
それを使う人が気にしなきゃいけないことがどれだけシンプルに収まってるか、に現れるので
コメントをダラダラ書いている時点で何かが間違っていると感じないといけない。
関数の(外向きの)コメントなんて、ヘッダの宣言の横に1行あるかないかで十分だと思う。
それを使う人が気にしなきゃいけないことがどれだけシンプルに収まってるか、に現れるので
コメントをダラダラ書いている時点で何かが間違っていると感じないといけない。
関数の(外向きの)コメントなんて、ヘッダの宣言の横に1行あるかないかで十分だと思う。
52仕様書無しさん
2011/06/05(日) 12:27:14.0353仕様書無しさん
2011/06/05(日) 12:31:34.92 引き続き例外と関係ない話。
54仕様書無しさん
2011/06/05(日) 17:11:00.6655仕様書無しさん
2011/06/05(日) 17:32:35.08 @throws RedundantCommentException
コメントがコード内容を繰り返すだけで冗長です。命名や設計を改善してコードの意図をシグニチャだけで表現出来るよう成長しましょう。
コメントがコード内容を繰り返すだけで冗長です。命名や設計を改善してコードの意図をシグニチャだけで表現出来るよう成長しましょう。
56仕様書無しさん
2011/06/05(日) 17:40:17.24 @throws ExcessiveCommentException
コード総量に占めるコメントが大杉ます。読み手のことを考えることなく、自分が書きたいこと書けることを書き散らすことで、何が重要で何が些細かが伝わりにくい状況です。古い習慣を疑いコメント設計を行いましょう。
コード総量に占めるコメントが大杉ます。読み手のことを考えることなく、自分が書きたいこと書けることを書き散らすことで、何が重要で何が些細かが伝わりにくい状況です。古い習慣を疑いコメント設計を行いましょう。
57仕様書無しさん
2011/06/05(日) 17:42:43.81 @throws MisleadCommentException
コードとコメントが乖離しています。コメントを書くことが目的か手段かを混同し考えなしに機械作業を行うと発生する現象です。身の丈にあったコード規約を採用し、コメントがノイズにならないようにすべきです。
コードとコメントが乖離しています。コメントを書くことが目的か手段かを混同し考えなしに機械作業を行うと発生する現象です。身の丈にあったコード規約を採用し、コメントがノイズにならないようにすべきです。
59仕様書無しさん
2011/06/05(日) 18:21:19.9860仕様書無しさん
2011/06/05(日) 18:47:41.49 痛いって…似たようなコメント連投するな。
61仕様書無しさん
2011/06/05(日) 19:01:21.46 class 58=60自己弁護Exception extends InvalidAttitudeException {}
62仕様書無しさん
2011/06/05(日) 19:49:24.43 発狂すんなよ
63仕様書無しさん
2011/06/05(日) 20:07:48.23 掲示板 2ch = Repository.Find("例外を正しく使えない...");
try{
2ch.read();
} catch(雑談Exception e){
2ch.warn("引き続き例外と関係ない話", e);
}catch(Wikipedia厨Exception e){
2ch.warn("痛いって…似たようなコメント連投するな。", e);
} catch(発狂Exception e){
2ch.warn("発狂すんなよ", e);
}
try{
2ch.read();
} catch(雑談Exception e){
2ch.warn("引き続き例外と関係ない話", e);
}catch(Wikipedia厨Exception e){
2ch.warn("痛いって…似たようなコメント連投するな。", e);
} catch(発狂Exception e){
2ch.warn("発狂すんなよ", e);
}
64仕様書無しさん
2011/06/09(木) 13:55:37.2065仕様書無しさん
2011/06/28(火) 01:02:28.79 そもそも、例外が必要なのって楽したいからだよね?面倒くさいチェック処理とか省きたいから。
なんか間違ってるか?
# そんな俺は例外書くことは基本的にない。
なんか間違ってるか?
# そんな俺は例外書くことは基本的にない。
66仕様書無しさん
2011/06/28(火) 01:27:24.09 例外は用途であって機能ではないけどな。
try-catch以外にも、GetLastErrorやらerrnoといったライブラリ、
割り込み命令で例外を処理してるし。
try-catch以外にも、GetLastErrorやらerrnoといったライブラリ、
割り込み命令で例外を処理してるし。
67仕様書無しさん
2011/06/28(火) 07:55:40.01 >>66
> GetLastErrorやらerrnoといったライブラリ、
> 割り込み命令で例外を処理してるし。
うん、だからそういうのを一箇所にまとめられる→楽したい ってことなんでしょ?
って思ってさ。
例外処理本来の用途って意味だと、例外が発生してもプログラム三原則に沿って
動き続けるためだろうなーっとは思ってるんだけどさ。
> GetLastErrorやらerrnoといったライブラリ、
> 割り込み命令で例外を処理してるし。
うん、だからそういうのを一箇所にまとめられる→楽したい ってことなんでしょ?
って思ってさ。
例外処理本来の用途って意味だと、例外が発生してもプログラム三原則に沿って
動き続けるためだろうなーっとは思ってるんだけどさ。
68仕様書無しさん
2011/06/28(火) 21:47:24.94 楽をしたいってのは間違ってるぞ。
楽に例外処理をしたい。
こっちが正解。
楽に例外処理をしたい。
こっちが正解。
70仕様書無しさん
2011/06/28(火) 22:22:32.83 >>67
try-catchの事言ってんなら大して、例外処理箇所は変わらんぞ。
例えば、文字列を数値に変えるInteger.valueOfがあるが、
このメソッドは、値が不正なとき例外を出す。
しかし、この例外には何が原因かは情報がない。
原因が何かは、Integer.valueOfに間違った値を渡した
呼び出し元のメソッドしかしらんからな。
だから、基本的にifで戻り値調べて、どの値が間違っています
って書くのと例外処理の箇所は変わらん。
楽になるとすれば、下層のメソッドから上層のメソッドへエラーを
伝えるだけの処理が省けることと、異常のあったループなんかから
抜け出しやすい事。
まぁ、そもそもtry-catchの発端は、C++でエラー情報を戻り値で
伝えられない関数を補助するためだから。
try-catchの事言ってんなら大して、例外処理箇所は変わらんぞ。
例えば、文字列を数値に変えるInteger.valueOfがあるが、
このメソッドは、値が不正なとき例外を出す。
しかし、この例外には何が原因かは情報がない。
原因が何かは、Integer.valueOfに間違った値を渡した
呼び出し元のメソッドしかしらんからな。
だから、基本的にifで戻り値調べて、どの値が間違っています
って書くのと例外処理の箇所は変わらん。
楽になるとすれば、下層のメソッドから上層のメソッドへエラーを
伝えるだけの処理が省けることと、異常のあったループなんかから
抜け出しやすい事。
まぁ、そもそもtry-catchの発端は、C++でエラー情報を戻り値で
伝えられない関数を補助するためだから。
71仕様書無しさん
2011/06/28(火) 22:30:18.92 > このメソッドは、値が不正なとき例外を出す。
> しかし、この例外には何が原因かは情報がない。
あるぞ?
例外:
NumberFormatException - 文字列が解析可能な整数型を含まない場合
文字列が解析可能な整数型を含まないという情報がある。
> しかし、この例外には何が原因かは情報がない。
あるぞ?
例外:
NumberFormatException - 文字列が解析可能な整数型を含まない場合
文字列が解析可能な整数型を含まないという情報がある。
72仕様書無しさん
2011/06/28(火) 22:36:23.09 >>70
そもそも入力チェックに例外を使っているのが間違い。
例外はその名のとおり例外。
通常の処理の流れでありえない=途中で中断すべき場合に使う物
どの値が間違っているか調べることなんかに
使うべきものじゃない。
そもそも入力チェックに例外を使っているのが間違い。
例外はその名のとおり例外。
通常の処理の流れでありえない=途中で中断すべき場合に使う物
どの値が間違っているか調べることなんかに
使うべきものじゃない。
73仕様書無しさん
2011/06/28(火) 22:51:47.32 >>71
原因が何かってのは、幅に文字が入ってるとか、
高さに文字が入ってるとかだぞ解ってるとは思うけど。
>>72
何から入力させてんの?まさかコンソールから値を入力する事を前提にしてるわけじゃないよね。
GUIならさ、普通数値以外を入力できなくさせることができる訳じゃん。ここで数値チェックなんてそもそも
必要ないわけよ。じゃあ他に数値が入っているべき場所に文字列が入ってる状況は?
そうなるとファイルやら通信データになるわけだ。当然データ構造のパースが走る。
パース処理は浅くはない、パース途中で値が無効だと解った時のコールスタックと、
パースが崩れた原因を知っているコールスタックは距離が離れてる。
そういう場合、いちいち例外投げない数値チェックをするのは、処理が2重になる上
コールスタックのif連鎖がある分無駄でしかないんだよ。
原因が何かってのは、幅に文字が入ってるとか、
高さに文字が入ってるとかだぞ解ってるとは思うけど。
>>72
何から入力させてんの?まさかコンソールから値を入力する事を前提にしてるわけじゃないよね。
GUIならさ、普通数値以外を入力できなくさせることができる訳じゃん。ここで数値チェックなんてそもそも
必要ないわけよ。じゃあ他に数値が入っているべき場所に文字列が入ってる状況は?
そうなるとファイルやら通信データになるわけだ。当然データ構造のパースが走る。
パース処理は浅くはない、パース途中で値が無効だと解った時のコールスタックと、
パースが崩れた原因を知っているコールスタックは距離が離れてる。
そういう場合、いちいち例外投げない数値チェックをするのは、処理が2重になる上
コールスタックのif連鎖がある分無駄でしかないんだよ。
74仕様書無しさん
2011/06/28(火) 22:54:20.31 >>73
例外っての出してもらうもんじゃないよ。
自分がわかるんだろ?
分かるやつが、例外の中にその情報を入れて
投げるもんだ。
その結果「例外には詳細なエラー情報が含まれる」ことになる。
やっぱり例外の使い方分かってないよ。
例外っての出してもらうもんじゃないよ。
自分がわかるんだろ?
分かるやつが、例外の中にその情報を入れて
投げるもんだ。
その結果「例外には詳細なエラー情報が含まれる」ことになる。
やっぱり例外の使い方分かってないよ。
76uy ◆hi.ht/Isu2
2011/06/29(水) 05:34:43.51 君たちはちょっとアセンブラレベルから一回考え直したほうがいいです
ポリもーフィズムとか、継承なんかと並んで、例外っつうのも説明されるから
初心者が陥っちゃうところなのかもね
例外なんて、ただの1メソッド扱いでいい。 使わなくたってプログラムは完成すんのに
何をどうしたいのか具体的に言ってみ?
ポリもーフィズムとか、継承なんかと並んで、例外っつうのも説明されるから
初心者が陥っちゃうところなのかもね
例外なんて、ただの1メソッド扱いでいい。 使わなくたってプログラムは完成すんのに
何をどうしたいのか具体的に言ってみ?
77仕様書無しさん
2011/06/29(水) 06:20:56.28 >>72
中断するべきかどうかっていうのを起点にするならちゃんと判定しろって思うんだけど
どうなんだ?
例外処理って「なんか起きても動き続けるために」使うもんだと解釈してるんだけど。
# 発想としては、ね。そりゃ書き方次第でいろいろ使えるのは分かってる。
中断するべきかどうかっていうのを起点にするならちゃんと判定しろって思うんだけど
どうなんだ?
例外処理って「なんか起きても動き続けるために」使うもんだと解釈してるんだけど。
# 発想としては、ね。そりゃ書き方次第でいろいろ使えるのは分かってる。
78仕様書無しさん
2011/06/29(水) 07:44:30.6780仕様書無しさん
2011/06/29(水) 13:20:16.89 Begin Sub A
On Error GoTo Err
Exit Sub
Err:
End Sub
On Error GoTo Err
Exit Sub
Err:
End Sub
81仕様書無しさん
2011/06/29(水) 23:12:26.82 >>77
> 例外処理って「なんか起きても動き続けるために」使うもんだと解釈してるんだけど。
例外処理は、通常の処理とは違う異常事態が起きたことを簡潔な形で伝える物。
伝えるだけ。
伝えた後動き続けるかどうかは
アプリの仕様しだい。
> 例外処理って「なんか起きても動き続けるために」使うもんだと解釈してるんだけど。
例外処理は、通常の処理とは違う異常事態が起きたことを簡潔な形で伝える物。
伝えるだけ。
伝えた後動き続けるかどうかは
アプリの仕様しだい。
82仕様書無しさん
2011/06/29(水) 23:17:45.22 それは例外処理じゃなくて例外機構だろ。
83仕様書無しさん
2011/06/30(木) 00:20:54.52 >>81
> 例外処理は、通常の処理とは違う異常事態が起きたことを簡潔な形で伝える物。
俺が「動き続ける」といったのはもちろんその「伝えた」以降の話なんだけども、
ぶっちゃけ「なんかよく分かんないことが起きましたので処理を中断して終了」
っていうのは、バッチ的な解釈なんだよね。
オンライン(リアルタイム)の場合は止まってはいけない。できればバッチの場合
でも復帰して続ける。
銀行ATMで「すいませんがなんか想定外のことが起きたんで停止します」って
話になったら業務に支障が出るわけで。
止まっても問題ない場合は止まればいいと思うよ。でもそれは例外処理の本来
の使い方ではないかなぁと思うんだよね。
> 例外処理は、通常の処理とは違う異常事態が起きたことを簡潔な形で伝える物。
俺が「動き続ける」といったのはもちろんその「伝えた」以降の話なんだけども、
ぶっちゃけ「なんかよく分かんないことが起きましたので処理を中断して終了」
っていうのは、バッチ的な解釈なんだよね。
オンライン(リアルタイム)の場合は止まってはいけない。できればバッチの場合
でも復帰して続ける。
銀行ATMで「すいませんがなんか想定外のことが起きたんで停止します」って
話になったら業務に支障が出るわけで。
止まっても問題ない場合は止まればいいと思うよ。でもそれは例外処理の本来
の使い方ではないかなぁと思うんだよね。
84仕様書無しさん
2011/06/30(木) 00:38:17.68 まず、throw try catchの概念を捨てて考えたら?
例外機構のない言語で同じ事態に遭遇したらどうするか。
それが基本的な答えだよ。その答えのうち面倒な部分を例外機構が補助してくれる。
例外処理にどんな例外機構を使ってるかは重要じゃない。
例外機構のない言語で同じ事態に遭遇したらどうするか。
それが基本的な答えだよ。その答えのうち面倒な部分を例外機構が補助してくれる。
例外処理にどんな例外機構を使ってるかは重要じゃない。
87仕様書無しさん
2011/06/30(木) 01:04:03.92 例外を使おうがそれ以外を使おうが
想定外のことは起きるし、その時にやりたいこともなにも変わらない。
単に例外を使えば簡単に処理がかける。
想定外のことは起きるし、その時にやりたいこともなにも変わらない。
単に例外を使えば簡単に処理がかける。
88仕様書無しさん
2011/06/30(木) 01:24:02.63 >>85
ノイマン型コンピューターには分岐と変数となんやらかんやら・・・。
Cωで書けたプログラムがFORTRANで書けないわけじゃない。
HTML5の技術を使わずjavascriptだけで3Dグラフィックスを
書くこともできない訳じゃない。こんな感じでな。
http://jsbin.com/ubiyay/3/edit#preview
アルゴリズムがチューリング完全ならどの言語にも依存しないのと同じで
例外処理だって言語に依存しないし、十分語れる。
例外情報が必要とかいうなら、staticな共用データ(共用体)に格納すれば
例外機構の無い他の言語でも用意できるし重要じゃない。
ノイマン型コンピューターには分岐と変数となんやらかんやら・・・。
Cωで書けたプログラムがFORTRANで書けないわけじゃない。
HTML5の技術を使わずjavascriptだけで3Dグラフィックスを
書くこともできない訳じゃない。こんな感じでな。
http://jsbin.com/ubiyay/3/edit#preview
アルゴリズムがチューリング完全ならどの言語にも依存しないのと同じで
例外処理だって言語に依存しないし、十分語れる。
例外情報が必要とかいうなら、staticな共用データ(共用体)に格納すれば
例外機構の無い他の言語でも用意できるし重要じゃない。
89仕様書無しさん
2011/06/30(木) 01:29:31.25 問題は、想定内の事象での例外だな。
まさにスレタイの通りではあるんだが。
まさにスレタイの通りではあるんだが。
90仕様書無しさん
2011/06/30(木) 01:52:12.0492仕様書無しさん
2011/06/30(木) 09:52:26.36 この板は、相変わらずだな。
例外がCPUとOSに依存しているのをいまだ、まともに理解出来ている人間がいない。
例外はCPUの割り込み処理だと分かっているのか?
その割り込み処理を、個々のプログラムで制御を許しているのは
OSがマルチタスクだと理解できているのか?
技術者のくせに、CPUやOSの仕組みをしらない奴が多すぎ。
例外がCPUとOSに依存しているのをいまだ、まともに理解出来ている人間がいない。
例外はCPUの割り込み処理だと分かっているのか?
その割り込み処理を、個々のプログラムで制御を許しているのは
OSがマルチタスクだと理解できているのか?
技術者のくせに、CPUやOSの仕組みをしらない奴が多すぎ。
93仕様書無しさん
2011/06/30(木) 09:57:21.60 お前は口だけでOSを作る上で一番面倒なことは何か理解していないようでしたが?
95仕様書無しさん
2011/06/30(木) 11:06:14.84 だから何。
あんたはトランジスタを、電子の動きを、半導体の作り方を理解して、コンピュータ使ってるのか?
下のレイヤを抽象化するのがエンジニアリングであって、下のレイヤを全部理解してなければ
わからない、と主張するのはバカのすることだぞ。
あんたはトランジスタを、電子の動きを、半導体の作り方を理解して、コンピュータ使ってるのか?
下のレイヤを抽象化するのがエンジニアリングであって、下のレイヤを全部理解してなければ
わからない、と主張するのはバカのすることだぞ。
96仕様書無しさん
2011/06/30(木) 12:09:47.94 >>95
お前は頭悪いな。自分の文書に違和感は無いのか?
>あんたはトランジスタを、電子の動きを、半導体の作り方を理解して、コンピュータ使ってるのか?
”電子の動き”って、中学で習うだろう、義務教育を受けていれば分かることだが。
それにパッケージになっているLSI(CPU)とトランジスタを比べてどうするだ?(半導体の作り方ってw)
>下のレイヤを抽象化するのがエンジニアリングであって、下のレイヤを全部理解してなければ
>わからない、と主張するのはバカのすることだぞ。
まったく分からん、何が書きたいんだ。”下のレイヤ”・”下のレイヤ”って?OSやハードのことか?
抽象化って、理解出来ていないものを抽象化出来るのか?それはただ単に知らないだけだ。
言葉遊びならとりつくろえても技術者としては駄目だな。
それに、そもそも技術者とは抽象的なものを具象化するものだろう。
別に全部理解しろとは言ってないが例外の話なら例外ぐらいは理解して話せ。
お前は頭悪いな。自分の文書に違和感は無いのか?
>あんたはトランジスタを、電子の動きを、半導体の作り方を理解して、コンピュータ使ってるのか?
”電子の動き”って、中学で習うだろう、義務教育を受けていれば分かることだが。
それにパッケージになっているLSI(CPU)とトランジスタを比べてどうするだ?(半導体の作り方ってw)
>下のレイヤを抽象化するのがエンジニアリングであって、下のレイヤを全部理解してなければ
>わからない、と主張するのはバカのすることだぞ。
まったく分からん、何が書きたいんだ。”下のレイヤ”・”下のレイヤ”って?OSやハードのことか?
抽象化って、理解出来ていないものを抽象化出来るのか?それはただ単に知らないだけだ。
言葉遊びならとりつくろえても技術者としては駄目だな。
それに、そもそも技術者とは抽象的なものを具象化するものだろう。
別に全部理解しろとは言ってないが例外の話なら例外ぐらいは理解して話せ。
97仕様書無しさん
2011/06/30(木) 14:57:13.85 フリップフロップ位理解したほうがいかなと、トイレで寝ながら書き込んでいる。
98仕様書無しさん
2011/06/30(木) 19:57:26.54 どこまで理解してたら例外を理解してることになんの?
99仕様書無しさん
2011/06/30(木) 22:10:00.40 >>92
それは例外実装のひとつだろ。
実装であって目的じゃないし、本質じゃない。
・例外実装の種類
・ハードウェア例外機構
・CPU例外
・ソフトで検知できない異常をソフトに通知する
・基本的に割り込み用途の極一部でしかない
・ソフトウェア例外機構
・OS例外
・アウトプロセスの異常を通知する
・ライブラリ例外
・結果が得られなかった事を通知する
ハードウェア例外機構 implements 例外機構;
ソフトウェア例外機構 implements 例外機構;
そもそも根底にあるのはタダの例外機構。
機構自体は、何ら例外の主体ではない。
それは例外実装のひとつだろ。
実装であって目的じゃないし、本質じゃない。
・例外実装の種類
・ハードウェア例外機構
・CPU例外
・ソフトで検知できない異常をソフトに通知する
・基本的に割り込み用途の極一部でしかない
・ソフトウェア例外機構
・OS例外
・アウトプロセスの異常を通知する
・ライブラリ例外
・結果が得られなかった事を通知する
ハードウェア例外機構 implements 例外機構;
ソフトウェア例外機構 implements 例外機構;
そもそも根底にあるのはタダの例外機構。
機構自体は、何ら例外の主体ではない。
100仕様書無しさん
2011/06/30(木) 22:36:26.49 >>99
またアホなことを。
ハードウェア例外だろうがソフトウェア例外だろうが
割り込み処理で実行しているのが分からないのか?
根本的に割り込み処理が分かってないから
そんな恥ずかしいことを堂々と書けるんだろうな。
お前の書いた例外処理をだれが処理しているんだ?
CPU以外に誰が処理してくれるんだ?
例外処理は、ノイマン型CPUなのに、なぜ急に処理の順番が変更できるんだ?
頭を使って考えろ。
またアホなことを。
ハードウェア例外だろうがソフトウェア例外だろうが
割り込み処理で実行しているのが分からないのか?
根本的に割り込み処理が分かってないから
そんな恥ずかしいことを堂々と書けるんだろうな。
お前の書いた例外処理をだれが処理しているんだ?
CPU以外に誰が処理してくれるんだ?
例外処理は、ノイマン型CPUなのに、なぜ急に処理の順番が変更できるんだ?
頭を使って考えろ。
101仕様書無しさん
2011/06/30(木) 22:40:31.41 ハードウェア例外とソフトウェア例外以外の
例外もあるよ。ただのジャンプで実装された例外。
例外もあるよ。ただのジャンプで実装された例外。
102仕様書無しさん
2011/06/30(木) 22:42:30.04 例外処理ってのは、割り込み処理から復帰してから動くコードだよ。
割り込み自体は単に処理の順番を入れ替える地点だけに過ぎない。
割り込み自体は単に処理の順番を入れ替える地点だけに過ぎない。
103仕様書無しさん
2011/06/30(木) 22:46:01.70 こういうバカって幸せなんだろうなぁ。うらやましい。
104仕様書無しさん
2011/06/30(木) 22:48:04.04 > 例外処理は、ノイマン型CPUなのに、なぜ急に処理の順番が変更できるんだ?
処理の順番が変更できないと、分岐もできないだろー。
割り込みと例外の区別が付いていないのかなー?
処理の順番が変更できないと、分岐もできないだろー。
割り込みと例外の区別が付いていないのかなー?
105仕様書無しさん
2011/06/30(木) 23:02:32.55 例えばゼロ除算とかは、プロセッサの例外をトラップして処理系レベルの例外にするわけだけど、
処理系の発生させる例外はそういうものばかりじゃないからな。
たとえば、システムコールがエラーを返して終了したらIOエクセプション、とかいう処理系は
よくあるし、その実装にわざわざプロセッサ例外を起こしてそれをトラップして、なんて、
普通はやらない。
プロセッサレベルを知ってる俺様無双、って威張りたいだけのバカでしょ。
処理系の発生させる例外はそういうものばかりじゃないからな。
たとえば、システムコールがエラーを返して終了したらIOエクセプション、とかいう処理系は
よくあるし、その実装にわざわざプロセッサ例外を起こしてそれをトラップして、なんて、
普通はやらない。
プロセッサレベルを知ってる俺様無双、って威張りたいだけのバカでしょ。
106仕様書無しさん
2011/06/30(木) 23:21:27.27 >>100
お前割り込みの意味しらねぇだろ。
割り込みっつうのは、そもそも割り込みコントローラーが能動的に
割り込み信号をCPUに送りつけ、割り込みベクタを実行させ
ポーリングを排除する。
ソフトウェア例外は、ただの分岐。全く割り込み関係ない。
jgeとかjmpとかintやスタブじゃない命令は割り込みとは言わない。
お前割り込みの意味しらねぇだろ。
割り込みっつうのは、そもそも割り込みコントローラーが能動的に
割り込み信号をCPUに送りつけ、割り込みベクタを実行させ
ポーリングを排除する。
ソフトウェア例外は、ただの分岐。全く割り込み関係ない。
jgeとかjmpとかintやスタブじゃない命令は割り込みとは言わない。
107仕様書無しさん
2011/06/30(木) 23:31:31.66 >>101-106
何を必死になっているんだ。哀れすぎるぞ。
>>101
具体的には? 言語はなんだ?
>>102
割り込み処理が発生しないと例外処理が出来ないのは納得するんだな。
割り込み処理は、誰が処理をするのか分かるか?
例外から発生した割り込み処理をプログラムが直接受け取るとでも思っているのか?
本当に割り込み処理が分かっていないんだな。
>>104
>処理の順番が変更できないと、分岐もできないだろー。
アホw 分岐はジャンプ命令で書いてあるから分岐するんだろうが、それがノイマン型だ。
トラップ部分全てにジャンプ命令が書かれているのか?
ジャンプ命令が無いのになぜ処理の順番が変わるのか考えろ。
>>105
>たとえば、システムコールがエラーを返して終了したらIOエクセプション、とかいう処理系は
>よくあるし、その実装にわざわざプロセッサ例外を起こしてそれをトラップして、なんて、
>普通はやらない。
疲れるなアホが多すぎて、じゃなぜ例外処理に処理が移動するんだ?
割り込み処理が発生するから例外処理に移動するんだろうが。
お前の書いたプログラムをアセンブラで見てみろよ。
「システムコールがエラー」で例外にジャンプする命令が書かれているか?
>>106
>ソフトウェア例外は、ただの分岐。全く割り込み関係ない。
アホw 自分が書いたプログラムも読めないのか分岐命令が書かれているか?
何を必死になっているんだ。哀れすぎるぞ。
>>101
具体的には? 言語はなんだ?
>>102
割り込み処理が発生しないと例外処理が出来ないのは納得するんだな。
割り込み処理は、誰が処理をするのか分かるか?
例外から発生した割り込み処理をプログラムが直接受け取るとでも思っているのか?
本当に割り込み処理が分かっていないんだな。
>>104
>処理の順番が変更できないと、分岐もできないだろー。
アホw 分岐はジャンプ命令で書いてあるから分岐するんだろうが、それがノイマン型だ。
トラップ部分全てにジャンプ命令が書かれているのか?
ジャンプ命令が無いのになぜ処理の順番が変わるのか考えろ。
>>105
>たとえば、システムコールがエラーを返して終了したらIOエクセプション、とかいう処理系は
>よくあるし、その実装にわざわざプロセッサ例外を起こしてそれをトラップして、なんて、
>普通はやらない。
疲れるなアホが多すぎて、じゃなぜ例外処理に処理が移動するんだ?
割り込み処理が発生するから例外処理に移動するんだろうが。
お前の書いたプログラムをアセンブラで見てみろよ。
「システムコールがエラー」で例外にジャンプする命令が書かれているか?
>>106
>ソフトウェア例外は、ただの分岐。全く割り込み関係ない。
アホw 自分が書いたプログラムも読めないのか分岐命令が書かれているか?
108仕様書無しさん
2011/06/30(木) 23:32:54.95109仕様書無しさん
2011/06/30(木) 23:40:13.81 setjmp/jongjmpで実装した例外処理とか知らないんだな、このバカは
110仕様書無しさん
2011/06/30(木) 23:43:33.44 魔法みたいな例外処理使ってるらしい...
112仕様書無しさん
2011/06/30(木) 23:48:43.48 >>107
>アホw 自分が書いたプログラムも読めないのか分岐命令が書かれているか?
書かれてるけど?何が言いたい?
まぁ、その付近にはシステムコールの割り込みが存在する事もあるけど
それはシステムコール用だし関係ない話。そもそもプロセスを跨いだ例外で無い限り
割り込み命令やスタブに出くわす事もない。だいたいWindowsじゃ割り込み命令(int)の
殆どはリングプロテクトの中じゃないと使えねぇしな。基本的に目にするのはスタブの割り込みだらけ。
>アホw 自分が書いたプログラムも読めないのか分岐命令が書かれているか?
書かれてるけど?何が言いたい?
まぁ、その付近にはシステムコールの割り込みが存在する事もあるけど
それはシステムコール用だし関係ない話。そもそもプロセスを跨いだ例外で無い限り
割り込み命令やスタブに出くわす事もない。だいたいWindowsじゃ割り込み命令(int)の
殆どはリングプロテクトの中じゃないと使えねぇしな。基本的に目にするのはスタブの割り込みだらけ。
113仕様書無しさん
2011/06/30(木) 23:50:50.48 ソースコード上の話してるだけだから、そういう事いってもわからないんだよ
115仕様書無しさん
2011/07/01(金) 00:03:01.87 >>107
ほい。G++のtry catchのランタイム実装コード。
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/unwind-sjlj.c?rev=1.21&content-type=text/x-cvsweb-markup
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/unwind.inc?rev=1.12&content-type=text/x-cvsweb-markup
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc%2b%2b-v3/libsupc%2b%2b/eh_alloc.cc?rev=1.13&content-type=text/x-cvsweb-markup
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc%2b%2b-v3/libsupc%2b%2b/eh_throw.cc?rev=1.11&content-type=text/x-cvsweb-markup
割り込みが存在すんのは、mallocとstd::terminate内部の呼び出しぐらい。
あとはスタック操作とか普通のライブラリのコードで書かれてる。
ほい。G++のtry catchのランタイム実装コード。
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/unwind-sjlj.c?rev=1.21&content-type=text/x-cvsweb-markup
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/unwind.inc?rev=1.12&content-type=text/x-cvsweb-markup
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc%2b%2b-v3/libsupc%2b%2b/eh_alloc.cc?rev=1.13&content-type=text/x-cvsweb-markup
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc%2b%2b-v3/libsupc%2b%2b/eh_throw.cc?rev=1.11&content-type=text/x-cvsweb-markup
割り込みが存在すんのは、mallocとstd::terminate内部の呼び出しぐらい。
あとはスタック操作とか普通のライブラリのコードで書かれてる。
116仕様書無しさん
2011/07/01(金) 00:17:05.58 沈黙したな。ageてみるか。
117仕様書無しさん
2011/07/01(金) 00:22:04.89 >>112-115
まったくアセンブラも読めないのか、話にならない。
try-catchの間で、catchにジャンプするJxxxのジャンプ命令は書かれていないだろう。
どうやって例外処理が呼び出されているか考えろ。
まったくアセンブラも読めないのか、話にならない。
try-catchの間で、catchにジャンプするJxxxのジャンプ命令は書かれていないだろう。
どうやって例外処理が呼び出されているか考えろ。
120仕様書無しさん
2011/07/01(金) 01:23:31.80121仕様書無しさん
2011/07/01(金) 01:36:02.87 >>92
半年経っても理解できなかったのか。悲しいな。
http://logsoku.com/thread/hibari.2ch.net/prog/1296098340/285-
時間の無駄だから、みんなスルーして欲しいな。
半年経っても理解できなかったのか。悲しいな。
http://logsoku.com/thread/hibari.2ch.net/prog/1296098340/285-
時間の無駄だから、みんなスルーして欲しいな。
122仕様書無しさん
2011/07/01(金) 02:07:40.20 >>120
まったく、なんでアセンブラを読まないのか。読めば解決するだろう。
じゃ、簡単な質問をする。
マルチタスクOSのメモリーは、OSやいろいろなプログラムが使っている。(これは理解できるだろう?)
自分の作ったプログラムでオブジェクトのメソッドを呼び出そうとする。
しかし、そのオブジェクトは不正な値が入っていたとする。(他のOSやプログラムが使っているアドレスを指している)
この時例外が発生するが、他のプログラムやOSの例外処理が動かなくて
自分のプログラムの例外処理が動くのは何故だ?
>あのな。try,catch,throwってのは、本当に>>115の呼び出しに置き換えられてるだけなの。解る?
その理屈だと、どうなる?
まったく、なんでアセンブラを読まないのか。読めば解決するだろう。
じゃ、簡単な質問をする。
マルチタスクOSのメモリーは、OSやいろいろなプログラムが使っている。(これは理解できるだろう?)
自分の作ったプログラムでオブジェクトのメソッドを呼び出そうとする。
しかし、そのオブジェクトは不正な値が入っていたとする。(他のOSやプログラムが使っているアドレスを指している)
この時例外が発生するが、他のプログラムやOSの例外処理が動かなくて
自分のプログラムの例外処理が動くのは何故だ?
>あのな。try,catch,throwってのは、本当に>>115の呼び出しに置き換えられてるだけなの。解る?
その理屈だと、どうなる?
123仕様書無しさん
2011/07/01(金) 02:19:17.20 > しかし、そのオブジェクトは不正な値が入っていたとする。(他のOSやプログラムが使っているアドレスを指している)
> この時例外が発生するが、
例外が発生するかどうかは、OSやCPUのメモリ保護機能によって決まる。
発生するとは限らない。
馬鹿か。
> 他のプログラムやOSの例外処理が動かなくて
OSやCPUのメモリ保護機能によって、OSの例外処理が働く場合もある。
馬鹿か。
> 自分のプログラムの例外処理が動くのは何故だ?
馬鹿か。
> その理屈だと、どうなる?
>>115のアセンブラの動きが答えだろ。
> この時例外が発生するが、
例外が発生するかどうかは、OSやCPUのメモリ保護機能によって決まる。
発生するとは限らない。
馬鹿か。
> 他のプログラムやOSの例外処理が動かなくて
OSやCPUのメモリ保護機能によって、OSの例外処理が働く場合もある。
馬鹿か。
> 自分のプログラムの例外処理が動くのは何故だ?
馬鹿か。
> その理屈だと、どうなる?
>>115のアセンブラの動きが答えだろ。
124仕様書無しさん
2011/07/01(金) 02:21:49.55 >>122
構造化例外の事を言いたいのか?
普通 _set_se_translator()を呼び出し、シグナルを言語仕様のthrow文に変換するコードを渡す。
基本的にOSからシグナルとして伝えられる例外と言語が持つ例外は別物。
暗黙だろうが明示的だろうが何らかのマッピングが必要になる。
まぁ、Javaなんかはシステムレベルの例外は、ランタイムでフックしてthrowに置き換えたり、
VMでリソース監視してVMがthrowしたりするけど、割り込みとは世界が別。
構造化例外の事を言いたいのか?
普通 _set_se_translator()を呼び出し、シグナルを言語仕様のthrow文に変換するコードを渡す。
基本的にOSからシグナルとして伝えられる例外と言語が持つ例外は別物。
暗黙だろうが明示的だろうが何らかのマッピングが必要になる。
まぁ、Javaなんかはシステムレベルの例外は、ランタイムでフックしてthrowに置き換えたり、
VMでリソース監視してVMがthrowしたりするけど、割り込みとは世界が別。
125仕様書無しさん
2011/07/01(金) 02:52:47.67 釣れたね。よかったね。
これくらいでもうやめてくれない?つまんないからさ。
これくらいでもうやめてくれない?つまんないからさ。
126仕様書無しさん
2011/07/01(金) 02:53:14.75 >>123
>例外が発生するかどうかは、OSやCPUのメモリ保護機能によって決まる。
>発生するとは限らない。
お前、自分で書いていて矛盾を感じないのか?
例外が発生するときはOSやCPUによって決まる書いているんだぞ。
意味がわからん。
>例外が発生するかどうかは、OSやCPUのメモリ保護機能によって決まる。
>発生するとは限らない。
お前、自分で書いていて矛盾を感じないのか?
例外が発生するときはOSやCPUによって決まる書いているんだぞ。
意味がわからん。
127仕様書無しさん
2011/07/01(金) 03:10:23.94 >>126
中途半端に抜き出すな。
俺が言っているのは、
> しかし、そのオブジェクトは不正な値が入っていたとする。(他のOSやプログラムが使っているアドレスを指している)
> この時例外が発生するが、
つまり、他のOSやプログラムが使っているアドレスを差したときに例外が発生するかどうかの話をしている。これはOSやCPUによって違う。
たとえばulinuxやMS-DOSとかだと他のプログラムが使っているアドレスを差したとしても例外は発生しない。
なにも矛盾しているところはない。また中途半端に抜き出されたくないから、改行少なく書いてみたよw
中途半端に抜き出すな。
俺が言っているのは、
> しかし、そのオブジェクトは不正な値が入っていたとする。(他のOSやプログラムが使っているアドレスを指している)
> この時例外が発生するが、
つまり、他のOSやプログラムが使っているアドレスを差したときに例外が発生するかどうかの話をしている。これはOSやCPUによって違う。
たとえばulinuxやMS-DOSとかだと他のプログラムが使っているアドレスを差したとしても例外は発生しない。
なにも矛盾しているところはない。また中途半端に抜き出されたくないから、改行少なく書いてみたよw
128仕様書無しさん
2011/07/01(金) 03:23:27.07 お前ら誰がどの考えなんだ。
1.例外はOS・CPUに依存する。
2.例外はOS・CPUに依存しない。
3.OS・CPUに依存する例外と、依存しない例外がある。
1.例外はOS・CPUに依存する。
2.例外はOS・CPUに依存しない。
3.OS・CPUに依存する例外と、依存しない例外がある。
129仕様書無しさん
2011/07/01(金) 03:35:07.21 × 1.例外はOS・CPUに依存する。
○ 1.他のプロセスのアドレスを参照することで発生する例外はOS・CPUに依存する。
自分の言った言葉ぐらい
責任をもて
○ 1.他のプロセスのアドレスを参照することで発生する例外はOS・CPUに依存する。
自分の言った言葉ぐらい
責任をもて
130仕様書無しさん
2011/07/01(金) 03:49:00.61131仕様書無しさん
2011/07/01(金) 03:54:16.75 ulinuxやMS-DOSでは例外は使えないの?
132仕様書無しさん
2011/07/01(金) 03:59:38.94 わざとなのか知らないが、アドレス違反などの CPU 例外と、
Windows 構造化例外のような OS の例外と、 C++ はじめ
プログラミング言語の例外とをごっちゃにしたまま話をしたのでは
わけがわからない。
Windows 構造化例外のような OS の例外と、 C++ はじめ
プログラミング言語の例外とをごっちゃにしたまま話をしたのでは
わけがわからない。
133仕様書無しさん
2011/07/01(金) 08:42:57.96 ごっちゃまぜ以前に、
すごく狭い自分の知識と視野でしか話すことができないバカが、
半年以上ずっと頑張ってるだけだから。
こんなバカが他で暴れたり仕事したりするのは社会に有害だから、
ここでしっかり構ってやんないとw
すごく狭い自分の知識と視野でしか話すことができないバカが、
半年以上ずっと頑張ってるだけだから。
こんなバカが他で暴れたり仕事したりするのは社会に有害だから、
ここでしっかり構ってやんないとw
134仕様書無しさん
2011/07/01(金) 09:48:38.85135仕様書無しさん
2011/07/01(金) 09:51:14.16 > OSがマルチタスクだと理解できているのか?
OSがマルチタスクだと理解していることがどう例外と関係するんだか。
> 技術者のくせに、CPUやOSの仕組みをしらない奴が多すぎ。
それがどう例外と関係あるんだか。
例外の仕組みをしらないのはおまえ自身だろ。
> 言っとくが一部の奴が言っている、一部言語に実装されている
> 擬似例外は、例外機構じゃない、擬似は擬似だ。
> 正式な例外みたいに言うのは間違っている。
俺様定義を振り回したってだれもそんなもん知らんわ。
OSがマルチタスクだと理解していることがどう例外と関係するんだか。
> 技術者のくせに、CPUやOSの仕組みをしらない奴が多すぎ。
それがどう例外と関係あるんだか。
例外の仕組みをしらないのはおまえ自身だろ。
> 言っとくが一部の奴が言っている、一部言語に実装されている
> 擬似例外は、例外機構じゃない、擬似は擬似だ。
> 正式な例外みたいに言うのは間違っている。
俺様定義を振り回したってだれもそんなもん知らんわ。
136仕様書無しさん
2011/07/01(金) 10:04:33.22 >俺様定義を振り回したってだれもそんなもん知らんわ。
一部言語にしか実装されていない擬似例外を
一般的な例外と言う方が”俺様定義”だと思うが。
一部言語にしか実装されていない擬似例外を
一般的な例外と言う方が”俺様定義”だと思うが。
137仕様書無しさん
2011/07/01(金) 10:15:56.76138仕様書無しさん
2011/07/01(金) 10:37:28.14 >>135,137
まったく自分だけ、かなり的外れ事を言っているのにきずかないのか?
俺以外の奴もこう言っているぞ。(>>127,123)
>OSがマルチタスクだと理解していることがどう例外と関係するんだか。
>たとえばulinuxやMS-DOSとかだと他のプログラムが使っているアドレスを差したとしても例外は発生しない。(>>127)
Windows7とulinuxやMS-DOSの違いは?
あと、>OSやCPUのメモリ保護機能によって、OSの例外処理が働く場合もある。(>>123)
のメモリ保護機能ってどんな時に必要になる?
>> 技術者のくせに、CPUやOSの仕組みをしらない奴が多すぎ。
>それがどう例外と関係あるんだか。
>これはOSやCPUによって違う。(>>127)
お前が割り込むと、話がめちゃくちゃになる。 粘着するな。
まったく自分だけ、かなり的外れ事を言っているのにきずかないのか?
俺以外の奴もこう言っているぞ。(>>127,123)
>OSがマルチタスクだと理解していることがどう例外と関係するんだか。
>たとえばulinuxやMS-DOSとかだと他のプログラムが使っているアドレスを差したとしても例外は発生しない。(>>127)
Windows7とulinuxやMS-DOSの違いは?
あと、>OSやCPUのメモリ保護機能によって、OSの例外処理が働く場合もある。(>>123)
のメモリ保護機能ってどんな時に必要になる?
>> 技術者のくせに、CPUやOSの仕組みをしらない奴が多すぎ。
>それがどう例外と関係あるんだか。
>これはOSやCPUによって違う。(>>127)
お前が割り込むと、話がめちゃくちゃになる。 粘着するな。
139仕様書無しさん
2011/07/01(金) 10:38:52.93 それが目的ですからw
140仕様書無しさん
2011/07/01(金) 10:39:31.39 > 自分だけ、かなり的外れ事を言っている
おまえもなんだけどなw
一生きづかないだろうけどw
おまえもなんだけどなw
一生きづかないだろうけどw
141仕様書無しさん
2011/07/01(金) 11:10:08.99142仕様書無しさん
2011/07/01(金) 11:15:12.37 ×それ言い訳
○その言い訳
○その言い訳
143仕様書無しさん
2011/07/01(金) 13:48:39.22144仕様書無しさん
2011/07/01(金) 13:59:39.89 「言語の例外」の話でしょ、ここでは
「CPUの例外」「OSの例外」が「言語の例外」に含まれてるから、話がややこしくなってる
「CPUの例外」「OSの例外」を除外した「言語の例外」の話だと自分的には面白くないだけどね
「CPUの例外」「OSの例外」が「言語の例外」に含まれてるから、話がややこしくなってる
「CPUの例外」「OSの例外」を除外した「言語の例外」の話だと自分的には面白くないだけどね
145仕様書無しさん
2011/07/01(金) 14:22:34.49 「自分の関わった領域における例外」じゃね?
OSとかCPU(ハード)の例外は別のモノ、つまり「自分の関わらない領域からの例外(≒割り込み)」
後者をどうやるか(回避するか)ってのは確かに面白いね。
人の行う例外入力に対する処理もそれかな? このスレとは若干というかかなりかけ離れる気がするけどさ。
だって、例外を“使う”ってタイトルからすれば命令とか機構をどう使うかって事だし、
CPUとかOSの例外をどうするかっていうと“どう処理するか”ってなるから、例外を“使う”と言う表現はちと違うね。
どっちも意義のある議論項目には違いないと思うけど。
OSとかCPU(ハード)の例外は別のモノ、つまり「自分の関わらない領域からの例外(≒割り込み)」
後者をどうやるか(回避するか)ってのは確かに面白いね。
人の行う例外入力に対する処理もそれかな? このスレとは若干というかかなりかけ離れる気がするけどさ。
だって、例外を“使う”ってタイトルからすれば命令とか機構をどう使うかって事だし、
CPUとかOSの例外をどうするかっていうと“どう処理するか”ってなるから、例外を“使う”と言う表現はちと違うね。
どっちも意義のある議論項目には違いないと思うけど。
148仕様書無しさん
2011/07/01(金) 22:20:46.80 「一部OSやCPUにしか実装されていないものを「一般的な例外」と主張するのは俺様定義でしかないなw 」
という定義について意義がある人はいませんか?
いないなら、この定義を一般的なものとしますよ。
という定義について意義がある人はいませんか?
いないなら、この定義を一般的なものとしますよ。
149仕様書無しさん
2011/07/01(金) 22:32:20.62 つまらん。
150仕様書無しさん
2011/07/01(金) 22:34:43.03 つまらんというのも
俺俺定義ですね?
俺俺定義ですね?
151仕様書無しさん
2011/07/01(金) 22:38:07.26 ず〜〜〜〜〜〜〜〜〜と、つまらん話が続いて.......
152仕様書無しさん
2011/07/01(金) 22:40:06.84 でも、それでもこのスレを見てしまうのです。僕は病気でしょうか?
153仕様書無しさん
2011/07/01(金) 22:41:44.55 結局>>92は何が言いたかったんだ?
「お前等バカばっか!!俺天才!!悔しがれよクズがっ」とでも言って
自尊心を満たしたかっただけなのか?まぁ、今のところそうとしか思えない発言だらけだが。
それとも、万が一かもしれんが、もしかしたら、ひたすら割り込みに拘ることによって、
何かが劇的に改善する方法論を知ってるのか。もし、そうならダラダラ押し問答するより
その貴重な方法論をとっとと語ってほしいもんだ。
「お前等バカばっか!!俺天才!!悔しがれよクズがっ」とでも言って
自尊心を満たしたかっただけなのか?まぁ、今のところそうとしか思えない発言だらけだが。
それとも、万が一かもしれんが、もしかしたら、ひたすら割り込みに拘ることによって、
何かが劇的に改善する方法論を知ってるのか。もし、そうならダラダラ押し問答するより
その貴重な方法論をとっとと語ってほしいもんだ。
154仕様書無しさん
2011/07/01(金) 22:43:47.73 とまあ一番むかついた人にレスしたのであった。
15592
2011/07/01(金) 22:59:15.09 >>143,144
お前ら当然のように分類を決めているが、だれがその分類で正しいと言ったんだ?
「CPUの例外」「OSの例外」「言語の例外」の具体的な例外は?
この例外をその分類で表してくれ。足りなければ追加してくれ。
・徐算エラー
・配列境界違反
・無効命令
・スタック例外
・一般保護例外
お前らの言っている分類ってなんだ?
お前ら当然のように分類を決めているが、だれがその分類で正しいと言ったんだ?
「CPUの例外」「OSの例外」「言語の例外」の具体的な例外は?
この例外をその分類で表してくれ。足りなければ追加してくれ。
・徐算エラー
・配列境界違反
・無効命令
・スタック例外
・一般保護例外
お前らの言っている分類ってなんだ?
156仕様書無しさん
2011/07/01(金) 23:03:22.60 IOException も知らずにこれだけ大威張りしてきたとはなw
157仕様書無しさん
2011/07/01(金) 23:04:28.21 また来た・・・。
159仕様書無しさん
2011/07/01(金) 23:08:58.03 うふふぅ
160仕様書無しさん
2011/07/01(金) 23:09:17.26 上から目線で話されても...
162仕様書無しさん
2011/07/01(金) 23:19:34.58 OSもCPUも理解してるはずのおまえが、分類できないわけがない。
OSもCPUも理解してるってのが大嘘でした、と大声で宣言しちゃったわけだ(核火暴笑)。
OSもCPUも理解してるってのが大嘘でした、と大声で宣言しちゃったわけだ(核火暴笑)。
163仕様書無しさん
2011/07/01(金) 23:22:35.55 > (核火暴笑)
ってなに?
ってなに?
164仕様書無しさん
2011/07/02(土) 00:39:15.47 若いな
165仕様書無しさん
2011/07/02(土) 02:15:20.43 >>155
0除算ひとつとってもプロセッサが例外を発生させることもあればソフトウェアが
検知して言語の例外を発生させることもあるわけで、要因に対して分類が1対1で
対応するわけでもない。
IA-32 の Divide Error をどれに分類するか、と具体的に言ってもらえれば、
それは「CPU例外」であるなどと分類を示すことができる。
0除算ひとつとってもプロセッサが例外を発生させることもあればソフトウェアが
検知して言語の例外を発生させることもあるわけで、要因に対して分類が1対1で
対応するわけでもない。
IA-32 の Divide Error をどれに分類するか、と具体的に言ってもらえれば、
それは「CPU例外」であるなどと分類を示すことができる。
166仕様書無しさん
2011/07/02(土) 02:29:53.00 「CPU例外」ってのは、バグ潰すのに便利だったんだけど
例外ってのがバグ隠し?みたいな使い方する(される)のがなんとなく
例外ってのがバグ隠し?みたいな使い方する(される)のがなんとなく
167仕様書無しさん
2011/07/02(土) 03:04:35.62 なんだ、また例外処理機構wのやつが出たのか。
こんどは32bitだとか8086より先とか言わんのか?
こんどは32bitだとか8086より先とか言わんのか?
168仕様書無しさん
2011/07/02(土) 03:10:15.72 そうやって排除するのか?
169仕様書無しさん
2011/07/02(土) 03:12:19.09 当然。
170仕様書無しさん
2011/07/02(土) 03:13:05.09 この業界の性格丸出しだね
171仕様書無しさん
2011/07/02(土) 03:14:11.18 バカを排除するのに性格もクソもあるか。
172仕様書無しさん
2011/07/02(土) 03:23:07.31 そうやって、優越感に浸るのも...
17392
2011/07/02(土) 08:54:00.52 やっぱりな、結局誰一人分類出来なかったな。
自分達が分類出来ないものを俺に分類して説明しろだと!
知識もない、いい加減な事しか言わない最低な奴らの集まりか。
>>156
IOExceptionは「CPUの例外」「OSの例外」「言語の例外」でどれだ?
>>158
>[割り込みだと両方セグメンテーション違反]
>・配列境界違反
>・スタック例外
>程度が知れるなw
俺には、お前の程度が良く分かるが。
OSレベルの知識しかないんだな。
>両方セグメンテーション違反
馬鹿か?詳細に分類したものを大雑把にいってどうする。
それなら全て例外と分類すればいいだろう。
>>162
なんでお前らが勝手に決めた分類を
俺が出来ないといけないんだ? お前は頭おかしいだろう。
>>165
> 0除算ひとつとってもプロセッサが例外を発生させることもあればソフトウェアが
>検知して言語の例外を発生させることもある
よくそんな嘘を平気で書けるな。
”ソフトウェアが検知して”ってどんな仕組みで感知してるんだ?
具体的に説明してくれ。 まっ逃げると思うが。
自分達が分類出来ないものを俺に分類して説明しろだと!
知識もない、いい加減な事しか言わない最低な奴らの集まりか。
>>156
IOExceptionは「CPUの例外」「OSの例外」「言語の例外」でどれだ?
>>158
>[割り込みだと両方セグメンテーション違反]
>・配列境界違反
>・スタック例外
>程度が知れるなw
俺には、お前の程度が良く分かるが。
OSレベルの知識しかないんだな。
>両方セグメンテーション違反
馬鹿か?詳細に分類したものを大雑把にいってどうする。
それなら全て例外と分類すればいいだろう。
>>162
なんでお前らが勝手に決めた分類を
俺が出来ないといけないんだ? お前は頭おかしいだろう。
>>165
> 0除算ひとつとってもプロセッサが例外を発生させることもあればソフトウェアが
>検知して言語の例外を発生させることもある
よくそんな嘘を平気で書けるな。
”ソフトウェアが検知して”ってどんな仕組みで感知してるんだ?
具体的に説明してくれ。 まっ逃げると思うが。
174仕様書無しさん
2011/07/02(土) 09:01:03.51 >>173
> ”ソフトウェアが検知して”ってどんな仕組みで感知してるんだ?
仕組みというほどのこともない。
int f(int a, int b)
{
if (b == 0)
throw division_by_zero(a, b);
return a / b;
}
> ”ソフトウェアが検知して”ってどんな仕組みで感知してるんだ?
仕組みというほどのこともない。
int f(int a, int b)
{
if (b == 0)
throw division_by_zero(a, b);
return a / b;
}
175仕様書無しさん
2011/07/02(土) 09:01:56.04 div(a, b){
if(b == 0){
throw new hoge();
}
...
}
if(b == 0){
throw new hoge();
}
...
}
176仕様書無しさん
2011/07/02(土) 09:03:44.14 もしかして、throwで例外を発生できることをしらない?
178仕様書無しさん
2011/07/02(土) 09:23:18.55 > やっぱりな、結局誰一人分類出来なかったな。
おまえ一人がおかしい、という可能性をなぜ考えない。
> 自分達が分類出来ないものを俺に分類して説明しろだと!
おまえ、自分はすべてわかってる、他人はすべてバカ、って態度だろ?
それを裏付けるものがなにもねぇじゃねぇか。
> 知識もない、いい加減な事しか言わない最低な奴らの集まりか。
おまえこそが、知識もない、いい加減な事しか言わない最低な奴じゃねぇか。
> お前らが勝手に決めた分類
とか言うが。
> 擬似例外は、例外機構じゃない、擬似は擬似だ。
勝手な分類をはじめたのはおまえじゃないか。
おまえ一人がおかしい、という可能性をなぜ考えない。
> 自分達が分類出来ないものを俺に分類して説明しろだと!
おまえ、自分はすべてわかってる、他人はすべてバカ、って態度だろ?
それを裏付けるものがなにもねぇじゃねぇか。
> 知識もない、いい加減な事しか言わない最低な奴らの集まりか。
おまえこそが、知識もない、いい加減な事しか言わない最低な奴じゃねぇか。
> お前らが勝手に決めた分類
とか言うが。
> 擬似例外は、例外機構じゃない、擬似は擬似だ。
勝手な分類をはじめたのはおまえじゃないか。
179仕様書無しさん
2011/07/02(土) 11:29:58.30 >>174-176
それは単に例外を発生させているだけ。
それなら、チェックしないで>return a / b;
を実行した場合>return a / b;が検知場所か?
どこで検知して、どう例外処理を実行させているかを聞いているが。
それは単に例外を発生させているだけ。
それなら、チェックしないで>return a / b;
を実行した場合>return a / b;が検知場所か?
どこで検知して、どう例外処理を実行させているかを聞いているが。
180仕様書無しさん
2011/07/02(土) 11:32:54.05 はぁ?
181仕様書無しさん
2011/07/02(土) 11:40:37.08 もうスルーしようぜ、いい加減に。
182仕様書無しさん
2011/07/02(土) 11:43:06.83 割り込みスレでもCPU例外スレでも立てて、そっちでやってくれよ。
183仕様書無しさん
2011/07/02(土) 11:45:58.79184仕様書無しさん
2011/07/02(土) 12:01:15.0118592
2011/07/02(土) 12:04:13.20 まったく、じゃ簡単に書く。
int f(int a, int b)
{
if (b == 0)
throw division_by_zero(a, b);
return a / b;
}
と
int f(int a, int b)
{
return a / b;
}
の例外処理が実行される仕組みはどう違う?
アセンブラでデバッグしながな追いかければ
すぐわかるだろう。
>>184
お前は特によくアセンブラを追いかけろ。
int f(int a, int b)
{
if (b == 0)
throw division_by_zero(a, b);
return a / b;
}
と
int f(int a, int b)
{
return a / b;
}
の例外処理が実行される仕組みはどう違う?
アセンブラでデバッグしながな追いかければ
すぐわかるだろう。
>>184
お前は特によくアセンブラを追いかけろ。
186仕様書無しさん
2011/07/02(土) 12:13:43.20187仕様書無しさん
2011/07/02(土) 12:17:30.78 例外を発生させることができるのはCPUだけ。
という宗教です。
という宗教です。
188仕様書無しさん
2011/07/02(土) 12:22:51.00 このスレ定期的に盛り上がるな
189仕様書無しさん
2011/07/02(土) 12:25:29.58 割り込みと例外の区別ぐらいつけろよw
0除算とかそういうのは割り込みであって例外ではない。
割り込みを復旧させるときに例外に変換することはある。
だが例外そのものは割り込みではなく
CPUが発生させる物。
0除算とかそういうのは割り込みであって例外ではない。
割り込みを復旧させるときに例外に変換することはある。
だが例外そのものは割り込みではなく
CPUが発生させる物。
190仕様書無しさん
2011/07/02(土) 12:33:30.09 >>185
b が 0 の場合、前者は C++ の規格に沿って例外処理が実行される。
同じ条件で、後者は未定義動作となるので何がどうなるとも言えない。
プログラムが止まるかもしれないし、 0 が返されるかもしれないし
1 が返されるかもしれないし、前者とまったく同じ動作になるかもしれない。
b が 0 の場合、前者は C++ の規格に沿って例外処理が実行される。
同じ条件で、後者は未定義動作となるので何がどうなるとも言えない。
プログラムが止まるかもしれないし、 0 が返されるかもしれないし
1 が返されるかもしれないし、前者とまったく同じ動作になるかもしれない。
191仕様書無しさん
2011/07/02(土) 12:33:58.07192仕様書無しさん
2011/07/02(土) 12:37:12.43 割り込みに性質として、なるべく早く割り込み処理を
終わらせるというものがあるが、
その性質を考えれば、例外とは別物だって分かるだろ。
割り込みは、システム全体から見た他の処理を中断させることになり、
また他の割り込みを遮ることがあるから
なるべく早く復帰しないといけない。
だが例外は違う。ゆっくりとエラー処理をすれば良い。
基本的に該当プロセスで発生した例外は、システム内の
他のプロセスに影響を与えることがない。
終わらせるというものがあるが、
その性質を考えれば、例外とは別物だって分かるだろ。
割り込みは、システム全体から見た他の処理を中断させることになり、
また他の割り込みを遮ることがあるから
なるべく早く復帰しないといけない。
だが例外は違う。ゆっくりとエラー処理をすれば良い。
基本的に該当プロセスで発生した例外は、システム内の
他のプロセスに影響を与えることがない。
193仕様書無しさん
2011/07/02(土) 12:44:49.48 別に架空の話をしているんじゃなくて
現実に動いているものの話なんだから
動かせば直ぐにわかる問題じゃないのか?
現実に動いているものの話なんだから
動かせば直ぐにわかる問題じゃないのか?
194仕様書無しさん
2011/07/02(土) 13:08:06.93 ここ隔離スレだろw
隔離スレが隔離スレとして機能してるんだから、正常進行じゃないか。
>>192
あー。OSの設計とか次第だけど、割込みサービスルーチンではフラグ立てるか
カウンタをアップするだけで、必要な処理は別に起動したりとかするよね。
隔離スレが隔離スレとして機能してるんだから、正常進行じゃないか。
>>192
あー。OSの設計とか次第だけど、割込みサービスルーチンではフラグ立てるか
カウンタをアップするだけで、必要な処理は別に起動したりとかするよね。
19592
2011/07/02(土) 13:22:02.34 例えばWindowsの場合
int f(int a, int b)
{
if (b == 0)
throw division_by_zero(a, b);
return a / b;
}
例外を発生(throw)させると、WinAPIのRaiseExceptionが呼ばれ
割り込み処理(INT 2Eh)が走る。
int f(int a, int b)
{
return a / b;
}
徐算エラーで割り込み処理(INT 00h)が走る。
int f(int a, int b)
{
if (b == 0)
throw division_by_zero(a, b);
return a / b;
}
例外を発生(throw)させると、WinAPIのRaiseExceptionが呼ばれ
割り込み処理(INT 2Eh)が走る。
int f(int a, int b)
{
return a / b;
}
徐算エラーで割り込み処理(INT 00h)が走る。
196仕様書無しさん
2011/07/02(土) 13:24:57.20 >>195
> 例外を発生(throw)させると、WinAPIのRaiseExceptionが呼ばれ
> 割り込み処理(INT 2Eh)が走る。
それ、 VC++ で /EHa を指定したとき限定の話だよね?
http://msdn.microsoft.com/ja-jp/library/1deeycx5.aspx
> 例外を発生(throw)させると、WinAPIのRaiseExceptionが呼ばれ
> 割り込み処理(INT 2Eh)が走る。
それ、 VC++ で /EHa を指定したとき限定の話だよね?
http://msdn.microsoft.com/ja-jp/library/1deeycx5.aspx
197仕様書無しさん
2011/07/02(土) 13:36:20.56 なんだ。古い VC++ しか知らなかったのか。そうかそうか。
198仕様書無しさん
2011/07/02(土) 13:41:17.79 割り込みはハードウェア的な話(ソフトウェア的に擬似的に発生するものを含める)
システムワイドに発生するものなので、プロセス事の割り込みという考え方はない。
例外は基本的にそのプロセス限定で発生する。
他のプロセスは全く感知されない。
このスレで話しているのは、後者の例外。
プロセス内で完結するもので、それ以外の話は無関係。
システムワイドに発生するものなので、プロセス事の割り込みという考え方はない。
例外は基本的にそのプロセス限定で発生する。
他のプロセスは全く感知されない。
このスレで話しているのは、後者の例外。
プロセス内で完結するもので、それ以外の話は無関係。
199仕様書無しさん
2011/07/02(土) 15:07:36.54 >>155
純粋な機械レベルでの分類
CPUの例外
算術エラー(SIGFPE)
・徐算エラー(VM)
セグメンテーション違反(SIGSEGV)
・配列境界違反(VM)
・スタック例外(VM)
・一般保護例外(OSまたはVM)
不正命令(SIGILL)
・一般保護例外(OSまたはVM)
・無効命令(OSまたはVM)
※CPUから取り出せる例外はこの3種類だけ。
純粋な機械レベルでの分類
CPUの例外
算術エラー(SIGFPE)
・徐算エラー(VM)
セグメンテーション違反(SIGSEGV)
・配列境界違反(VM)
・スタック例外(VM)
・一般保護例外(OSまたはVM)
不正命令(SIGILL)
・一般保護例外(OSまたはVM)
・無効命令(OSまたはVM)
※CPUから取り出せる例外はこの3種類だけ。
203仕様書無しさん
2011/07/02(土) 15:30:28.39 >>195
INT 2EHはカーネルモードへの移行。所謂スタブと同じ話で
例外とは関係ない。例外に限らずAPIを呼び出しカーネルモードに行く場合は呼び出される。
INT 00は割り込みハンドラを明示的に呼び出す場合に使うもので、除算時にソフトに明示的に
呼ばれる事は無い。除算時はCPUからINT 00に相当する割り込みが発生するだけ。
それがSIGFPE。
INT 2EHはカーネルモードへの移行。所謂スタブと同じ話で
例外とは関係ない。例外に限らずAPIを呼び出しカーネルモードに行く場合は呼び出される。
INT 00は割り込みハンドラを明示的に呼び出す場合に使うもので、除算時にソフトに明示的に
呼ばれる事は無い。除算時はCPUからINT 00に相当する割り込みが発生するだけ。
それがSIGFPE。
20492
2011/07/02(土) 17:05:33.54 >>196
VC++なんて触ったこともない。
>それ、 VC++ で /EHa を指定したとき限定の話だよね?
/EHaを指定しない場合はアセンブラでどう動いているんだ?
>>198
>例外は基本的にそのプロセス限定で発生する。
それに対応している言語と例外は何だ?
その方がはるかに少数だ。ローカル言語を一般みたいに言うな。
>>199
俺は三つの分類を教えてくれとたのんだが?
それにそれは、UNIX系のシグナル分類にすぎないだろう。
俺の書いた割り込みはシグナルのもとになっているもの。
>>203
>INT 2EHはカーネルモードへの移行。所謂スタブと同じ話で
INT xxが割り込みを発生させる命令なんだが、意味がわからん。
>INT 00は割り込みハンドラを明示的に呼び出す場合に使うもので、除算時にソフトに明示的に
>呼ばれる事は無い。除算時はCPUからINT 00に相当する割り込みが発生するだけ。
書き方がわるかった、明示的には呼ばれていない。基点という意味で(INT 00h)と書いた。
まっこれは、CPUが発生される例外だと誰でも分かることだと思ったが。
>それがSIGFPE。
だから基点は割り込み番号:00hの処理で、それはUNIX系OSが勝手に対応付けしているシグナルにしかすぎない。
それはOSレベルの話だ。
VC++なんて触ったこともない。
>それ、 VC++ で /EHa を指定したとき限定の話だよね?
/EHaを指定しない場合はアセンブラでどう動いているんだ?
>>198
>例外は基本的にそのプロセス限定で発生する。
それに対応している言語と例外は何だ?
その方がはるかに少数だ。ローカル言語を一般みたいに言うな。
>>199
俺は三つの分類を教えてくれとたのんだが?
それにそれは、UNIX系のシグナル分類にすぎないだろう。
俺の書いた割り込みはシグナルのもとになっているもの。
>>203
>INT 2EHはカーネルモードへの移行。所謂スタブと同じ話で
INT xxが割り込みを発生させる命令なんだが、意味がわからん。
>INT 00は割り込みハンドラを明示的に呼び出す場合に使うもので、除算時にソフトに明示的に
>呼ばれる事は無い。除算時はCPUからINT 00に相当する割り込みが発生するだけ。
書き方がわるかった、明示的には呼ばれていない。基点という意味で(INT 00h)と書いた。
まっこれは、CPUが発生される例外だと誰でも分かることだと思ったが。
>それがSIGFPE。
だから基点は割り込み番号:00hの処理で、それはUNIX系OSが勝手に対応付けしているシグナルにしかすぎない。
それはOSレベルの話だ。
205仕様書無しさん
2011/07/02(土) 17:23:55.91 えーと、このスレでは、
OSが捉えて処理する部分は無関係です。
OSが処理して各プロセスに振り分け
その言語の例外型(JavaならException)に
変換されてからが話の対象です。
INT xxの話で説明するなら、C++の文法でINT xxという
命令はありません。(インラインアセンブラは当然除く)
だからこの部分はC++の話としては対象外です。
また、INT xxが発行されてから、プロセスが直接処理をもらうことはありません。
まずOSが処理します。この部分はC++言語の範囲の処理ではないので
このスレの対象外です。
色々と処理された結果、C++のExceptionとなってからが話の対象です。
OSが捉えて処理する部分は無関係です。
OSが処理して各プロセスに振り分け
その言語の例外型(JavaならException)に
変換されてからが話の対象です。
INT xxの話で説明するなら、C++の文法でINT xxという
命令はありません。(インラインアセンブラは当然除く)
だからこの部分はC++の話としては対象外です。
また、INT xxが発行されてから、プロセスが直接処理をもらうことはありません。
まずOSが処理します。この部分はC++言語の範囲の処理ではないので
このスレの対象外です。
色々と処理された結果、C++のExceptionとなってからが話の対象です。
206仕様書無しさん
2011/07/02(土) 17:35:49.60 割込みと例外の区別が付いていない奴が騒いでるだけだろ。
割込みの話をしたいのなら、割込みを正しく使えないプログラマ多いね。スレで。
割込みの話をしたいのなら、割込みを正しく使えないプログラマ多いね。スレで。
20792
2011/07/02(土) 18:21:32.63208仕様書無しさん
2011/07/02(土) 18:26:55.99 「本質」という言葉を使う奴の99%は「俺様の定義する」である件
209仕様書無しさん
2011/07/02(土) 18:27:45.46 やっといなくなるのか。よかったよかった。
210仕様書無しさん
2011/07/02(土) 19:56:43.61211仕様書無しさん
2011/07/02(土) 20:23:10.15 またお前かwなんでこのスレでの例外は言語の機能だと何度言えば…
で、8086より先の話はどーしたのよ。
で、8086より先の話はどーしたのよ。
212仕様書無しさん
2011/07/02(土) 21:32:30.22 また半年ぐらいしたら現れるんじゃねーの
213仕様書無しさん
2011/07/02(土) 21:50:44.32214仕様書無しさん
2011/07/03(日) 09:02:52.86215仕様書無しさん
2011/07/03(日) 10:57:31.06 おー…伸びてると思って覗いてみればすごい恥ずかしい奴がいるな…
216仕様書無しさん
2011/07/03(日) 11:17:50.69218仕様書無しさん
2011/07/03(日) 11:40:19.80 たとえばIOの例外についてだけど
例外を正しく使えないプログラマって、
selectを使いこなせないとかそういうこと?
例外を正しく使えないプログラマって、
selectを使いこなせないとかそういうこと?
219仕様書無しさん
2011/07/03(日) 11:46:59.77 select の exception って、例外つーより OOB 食らった時じゃなかったっけ
socket 関連エラー拾えない実装があったような…
socket 関連エラー拾えない実装があったような…
220仕様書無しさん
2011/07/03(日) 12:09:14.81 俺はもう少し92の話が聞きたかった
痛い奴は氏ね
痛い奴は氏ね
221仕様書無しさん
2011/07/03(日) 12:10:25.01 じゃ、92と語るスレでも立てればいいじゃん。
222仕様書無しさん
2011/07/03(日) 12:12:59.29 92は例外がどう実装されてるかという話ばかりで、
例外をどう使うかには興味がないみたいだけど。
例外をどう使うかには興味がないみたいだけど。
223ラプラスの天使 ◆daemontaDA
2011/07/03(日) 12:18:11.54 >>92
それは例外処理の一種あって全てじゃないんだがw
キミらが好きなVBや昔のBASICにも例外処理があってだな、
ネットに転がってる例外処理の解説記事はだな、
例外なく間違いなく間違っているとう事実だ。w
それは例外処理の一種あって全てじゃないんだがw
キミらが好きなVBや昔のBASICにも例外処理があってだな、
ネットに転がってる例外処理の解説記事はだな、
例外なく間違いなく間違っているとう事実だ。w
224仕様書無しさん
2011/07/03(日) 12:19:48.51 最後の「本質」が何かじゃんw
それより俺も、痛い奴には氏んでほしいわw じゃま
それより俺も、痛い奴には氏んでほしいわw じゃま
225仕様書無しさん
2011/07/03(日) 12:24:35.09 以下、自演レスでお送りします。
226仕様書無しさん
2011/07/03(日) 12:26:55.40 ばーか、他人だよw 被害妄想乙w
227ラプラスの天使 ◆daemontaDA
2011/07/03(日) 12:30:55.83 どーでもいいけど、例外を正しく使えっていう表現が変だろw
例外が起きないようにプログラムを組やがれw
例外が起きないようにプログラムを組やがれw
228仕様書無しさん
2011/07/03(日) 13:00:42.28 >>224
92は本質じゃなくて、実装について語りたがってたみたいだけどね。
92は本質じゃなくて、実装について語りたがってたみたいだけどね。
229仕様書無しさん
2011/07/03(日) 13:02:29.54230仕様書無しさん
2011/07/03(日) 13:38:51.43 何この屑コテ
231仕様書無しさん
2011/07/03(日) 13:46:38.49 にわかなんで214の内容とか理解はしてないけれど
結局92は、実装レベルの視点でみて、何を問題視してたのかがよくわからん。
究極的にどのような問題があるから、実装レベルでの理解が必要だって話なんだろ。
なんつーか、お前らそんなことも知らないのか馬鹿だろ俺は知ってるぞ
っていう事ばっかで、どのレスにも中身がない感。
結局92は、実装レベルの視点でみて、何を問題視してたのかがよくわからん。
究極的にどのような問題があるから、実装レベルでの理解が必要だって話なんだろ。
なんつーか、お前らそんなことも知らないのか馬鹿だろ俺は知ってるぞ
っていう事ばっかで、どのレスにも中身がない感。
233仕様書無しさん
2011/07/03(日) 13:47:29.11 実装こそ本質、と思ってる奴は結構いるよな
下手をすると規格なんて飾りです、とか本気で言い出すw
下手をすると規格なんて飾りです、とか本気で言い出すw
234仕様書無しさん
2011/07/03(日) 14:03:24.15 規格なんて飾り
235仕様書無しさん
2011/07/03(日) 14:32:25.54 構造化想定外処理
try {
原発運用();
} catch( 想定外 s ) {
// NOP
}
try {
原発運用();
} catch( 想定外 s ) {
// NOP
}
236仕様書無しさん
2011/07/03(日) 14:39:42.84237仕様書無しさん
2011/07/03(日) 14:49:14.95 正しく使えない人が多い一番の理由って、
例外==エラー
という認識しかしてないからじゃないかなって思う。
例外エラーとか、言いたい事はわかるんだけど、
よく考えるとなんか変な気分になる単語みかけることもよくあるし。
例外==エラー
という認識しかしてないからじゃないかなって思う。
例外エラーとか、言いたい事はわかるんだけど、
よく考えるとなんか変な気分になる単語みかけることもよくあるし。
238仕様書無しさん
2011/07/03(日) 15:23:26.25 >>229
> On Errorのことか? それは例外処理じゃないぞ
> 例外はfinally機能が大事だ
catchじゃないのか?
finallyはなくてもcatchがあれば
finallyと同じことが実装可能だし。
> On Errorのことか? それは例外処理じゃないぞ
> 例外はfinally機能が大事だ
catchじゃないのか?
finallyはなくてもcatchがあれば
finallyと同じことが実装可能だし。
239仕様書無しさん
2011/07/03(日) 16:13:20.29 unwind-protect
240仕様書無しさん
2011/07/03(日) 16:17:11.11241仕様書無しさん
2011/07/03(日) 16:28:58.32 >>214
それ、210と何か関係あるの?
CPUの例外がLinuxではシグナルに変換されてプロセスに通知される、って話だよね?
WindowsのSEHでもそうだけど、そこから先でさらに言語の例外に変換されることが
あるかどうかって話でしょ210は。
それ、210と何か関係あるの?
CPUの例外がLinuxではシグナルに変換されてプロセスに通知される、って話だよね?
WindowsのSEHでもそうだけど、そこから先でさらに言語の例外に変換されることが
あるかどうかって話でしょ210は。
242仕様書無しさん
2011/07/03(日) 16:38:16.81 普通にあるだろ。0除算とか。
243仕様書無しさん
2011/07/03(日) 17:04:48.94245仕様書無しさん
2011/07/03(日) 17:24:45.74246仕様書無しさん
2011/07/03(日) 17:24:47.91247仕様書無しさん
2011/07/03(日) 17:30:59.82 そうか?214を読むと他の奴らが言っていることが間違っていたと思えるが。
248仕様書無しさん
2011/07/03(日) 17:31:03.02249仕様書無しさん
2011/07/03(日) 17:33:19.63256仕様書無しさん
2011/07/03(日) 17:52:21.72 例外と、例外処理と、例外機構をごっちゃにして例外と呼ぶのをどうにかしてくれんか?
アセンブリをアセンブラでアセンブルするのに。
アセンブリを書くことをアセンブラを書くっていってるぐらい変。ていうか分かりづらい。
そりゃアセンブリの事を聞きかじったヤツがアセンブラ、アセンブラって言ってんのは分かるけど、
アセンブラの設定までしなきゃならん環境でアセンブリをアセンブラと言われちゃなんの事かわからなくなる。
例外についてもおんなじだから。頼むから書き分けてくれ。
ちゃんとExceptionとException handling、Exception mechanismで別れてんだから。
アセンブリをアセンブラでアセンブルするのに。
アセンブリを書くことをアセンブラを書くっていってるぐらい変。ていうか分かりづらい。
そりゃアセンブリの事を聞きかじったヤツがアセンブラ、アセンブラって言ってんのは分かるけど、
アセンブラの設定までしなきゃならん環境でアセンブリをアセンブラと言われちゃなんの事かわからなくなる。
例外についてもおんなじだから。頼むから書き分けてくれ。
ちゃんとExceptionとException handling、Exception mechanismで別れてんだから。
258仕様書無しさん
2011/07/03(日) 17:55:44.35260仕様書無しさん
2011/07/03(日) 17:59:44.90262仕様書無しさん
2011/07/03(日) 18:13:30.59 finallyはガベージコレクタというか
スコープから抜けだしたときに自動的に
終了処理をできない言語では必須だろうけど、
ほとんどの言語ではできるから、使わないと思うんだが?
スコープから抜けだしたときに自動的に
終了処理をできない言語では必須だろうけど、
ほとんどの言語ではできるから、使わないと思うんだが?
263仕様書無しさん
2011/07/03(日) 18:28:42.93 例外と話ずれるけど、なんでJavaのfinallyってtryが必要なんだろ?
finallyブロックだけありゃいいだろうに。Windowの構造化例外ぱくったからか?
finallyブロックだけありゃいいだろうに。Windowの構造化例外ぱくったからか?
266天使 ◆uL5esZLBSE
2011/07/03(日) 18:34:00.87 これ ; デリミタっていうんだけどさ、これをつけなきゃエラーになるような
そんな言語使ってる奴ってどうみてもゴミだと思うんだけど
もしかして「;」これ打ち忘れてコンパイルエラー出すのが楽しいの?
そうか、二度と話かけんなよ
今日何ゴミの日だっけ?
そんな言語使ってる奴ってどうみてもゴミだと思うんだけど
もしかして「;」これ打ち忘れてコンパイルエラー出すのが楽しいの?
そうか、二度と話かけんなよ
今日何ゴミの日だっけ?
267仕様書無しさん
2011/07/03(日) 18:37:02.30 天使◆uZeeeは新しいバリエーション作ったのか?w
268仕様書無しさん
2011/07/03(日) 18:39:29.15 というかfinallyの意味わかってないだろ。
tryブロックに入ったら、そこから出る時に必ず実行されるのがfinallyなんだから、
finallyだけだったら実行すべきタイミングわからんじゃない。
tryブロックに入ったら、そこから出る時に必ず実行されるのがfinallyなんだから、
finallyだけだったら実行すべきタイミングわからんじゃない。
269仕様書無しさん
2011/07/03(日) 18:41:26.06 >>265 Disposableな一時オブジェクトつくるのが面倒だからだろ。
Javaに限れば、ブロックスコープでの処理の強制実行がないから。
Javaに限れば、ブロックスコープでの処理の強制実行がないから。
273仕様書無しさん
2011/07/03(日) 18:44:45.98274仕様書無しさん
2011/07/03(日) 18:47:46.98 finallyを使わない人はリソース保護どうしているの?
281仕様書無しさん
2011/07/03(日) 19:55:39.67 だからなんで「まったく」関係なく、が出てくるんだよw
交通事故にクルマの故障がまったく関係ないって言うバカがいるか?
交通事故にクルマの故障がまったく関係ないって言うバカがいるか?
285仕様書無しさん
2011/07/03(日) 20:25:08.32287仕様書無しさん
2011/07/03(日) 20:48:52.54 >>286
上の方に書いてあるので読み直してください。
つか0除算なんて例外機構で処理するハメになっても何もそのプロセス単体じゃ出来んと思うけど。
本来0除算が発生しないようにプログラムを組むべきだし。
上の方に書いてあるので読み直してください。
つか0除算なんて例外機構で処理するハメになっても何もそのプロセス単体じゃ出来んと思うけど。
本来0除算が発生しないようにプログラムを組むべきだし。
290仕様書無しさん
2011/07/03(日) 21:06:50.18 漏れまくりだけど、整理してみた。
とりあえず、下に書いた関係に踏まえてレスしろ。
割り込み = new 割り込み();
入出力制御 = 割り込み;
タイマー等タイミング制御 = 割り込み;
例外機構 = 割り込み;
例外機構 = new OS例外();
例外機構 = new 言語例外();
例外機構 = new 戻り値例外();
例外処理 = new リソース開放();
例外処理 = new バックアップ復帰();
例外処理 = new 初期化による再試行();//Watchdog
例外処理 = new 上位プロセスに通知後終了();
例外処理 = new 例外に対するユーザー操作問い合わせ();
例外 = new 不正メモリ領域へのアクセス();
例外 = new データの破損();
例外 = new 不正データ入力();
例外 = new 入出力失敗();
例外 = new リソース不足();
例外 = new タイムオーバー();
とりあえず、下に書いた関係に踏まえてレスしろ。
割り込み = new 割り込み();
入出力制御 = 割り込み;
タイマー等タイミング制御 = 割り込み;
例外機構 = 割り込み;
例外機構 = new OS例外();
例外機構 = new 言語例外();
例外機構 = new 戻り値例外();
例外処理 = new リソース開放();
例外処理 = new バックアップ復帰();
例外処理 = new 初期化による再試行();//Watchdog
例外処理 = new 上位プロセスに通知後終了();
例外処理 = new 例外に対するユーザー操作問い合わせ();
例外 = new 不正メモリ領域へのアクセス();
例外 = new データの破損();
例外 = new 不正データ入力();
例外 = new 入出力失敗();
例外 = new リソース不足();
例外 = new タイムオーバー();
291仕様書無しさん
2011/07/03(日) 21:11:02.26 >>287
お前は例外処理でなにをしようと考えてるんだ?
0除算が発生したらやることはない?素人か?
実際に動くアプリを作ったことがないのか?
やるかやらないかは、アプリの仕様次第だが、
0除算が発生したときにやることはたくさんある。
・0除算が発生したことを画面に表示する。
・0除算が発生したことをログに記録する。
・スタックトレースを表示する。
・0除算が発生した処理のみを中断させ、正常なコマンド入力状態戻す。
やることはたくさんあるだろ。
お前は例外処理でなにをしようと考えてるんだ?
0除算が発生したらやることはない?素人か?
実際に動くアプリを作ったことがないのか?
やるかやらないかは、アプリの仕様次第だが、
0除算が発生したときにやることはたくさんある。
・0除算が発生したことを画面に表示する。
・0除算が発生したことをログに記録する。
・スタックトレースを表示する。
・0除算が発生した処理のみを中断させ、正常なコマンド入力状態戻す。
やることはたくさんあるだろ。
293仕様書無しさん
2011/07/03(日) 21:15:16.90 このスレにおける例外というのは、
CPUが発生させたとかハードウェアが発生させたとかは
気にするところではない。
プログラムのコードとして例外と呼ばれるオブジェクトを生成し
それを上位関数に返す行為のことを指す。オブジェクトの生成も
それを上位関数に返すのも、割り込みを必要としない。
一部の例外はハードウェアの状態が例外送信のきっかけに
なっているかもしれないが、そのことを意識してはいけない。
つまり抽象化。
ソフトウェアが割り込み機能を使わずに、
発生された物。それを例外としてこのスレで扱う。
割り込みの話はすれ違い。
CPUが発生させたとかハードウェアが発生させたとかは
気にするところではない。
プログラムのコードとして例外と呼ばれるオブジェクトを生成し
それを上位関数に返す行為のことを指す。オブジェクトの生成も
それを上位関数に返すのも、割り込みを必要としない。
一部の例外はハードウェアの状態が例外送信のきっかけに
なっているかもしれないが、そのことを意識してはいけない。
つまり抽象化。
ソフトウェアが割り込み機能を使わずに、
発生された物。それを例外としてこのスレで扱う。
割り込みの話はすれ違い。
294仕様書無しさん
2011/07/03(日) 21:23:58.47295仕様書無しさん
2011/07/03(日) 21:28:28.74 >>294
> さてあなたの発見したゼロ除算はどこで発生したんでしょうね。
tryの中のどこか。
どこで発生したかは、例外オブジェクトが持っている。
例外オブジェクトに聞けば、発生した箇所を
スタックトレースとして取得できる。
常識だと思うんだが、こんなことも知らないの?
> さてあなたの発見したゼロ除算はどこで発生したんでしょうね。
tryの中のどこか。
どこで発生したかは、例外オブジェクトが持っている。
例外オブジェクトに聞けば、発生した箇所を
スタックトレースとして取得できる。
常識だと思うんだが、こんなことも知らないの?
296仕様書無しさん
2011/07/03(日) 21:30:50.20 >>291
大半の例外機構にリトライ機能がないのはなぜか知ってる?
例外が起こり得た範囲の値は全て信用できないからなんだってさ。
RuntimeErrorの類がチェック例外になっていないのはコレがひとつの理由だって。
もうひとつは、プログラマの意図を把握する手段が無いからだって。
大半の例外機構にリトライ機能がないのはなぜか知ってる?
例外が起こり得た範囲の値は全て信用できないからなんだってさ。
RuntimeErrorの類がチェック例外になっていないのはコレがひとつの理由だって。
もうひとつは、プログラマの意図を把握する手段が無いからだって。
297仕様書無しさん
2011/07/03(日) 21:32:16.92 >294
例外をただの割り込みだと思ってるから
詳細な情報を取得できるってことがわからないんだろうね。
まあ、そういう勘違いしてしまう理由もわからなくはない。
お前が考えている例外はCPUが発生するもの。
つまり言語(プログラムのソースコード)とは関係ない。
例外が言語と関係ない。機械語上で起こることなのだから、
機械語がソースコード上のどこで発生したかを知るわけがない。
このように考えているのだろう。
だから、そういう意味の例外はスレ違いなんだよ。
このスレの例外は、ソースコードのメタ情報を持っている。
ユーザーがいくらでも情報を追加できる仕組みがある。
例外をただの割り込みだと思ってるから
詳細な情報を取得できるってことがわからないんだろうね。
まあ、そういう勘違いしてしまう理由もわからなくはない。
お前が考えている例外はCPUが発生するもの。
つまり言語(プログラムのソースコード)とは関係ない。
例外が言語と関係ない。機械語上で起こることなのだから、
機械語がソースコード上のどこで発生したかを知るわけがない。
このように考えているのだろう。
だから、そういう意味の例外はスレ違いなんだよ。
このスレの例外は、ソースコードのメタ情報を持っている。
ユーザーがいくらでも情報を追加できる仕組みがある。
298仕様書無しさん
2011/07/03(日) 21:34:25.56 >>296
> 大半の例外機構にリトライ機能がないのはなぜか知ってる?
ん?
例外機能とリトライ機能は全くの別物だからだよ。
お前が言ってるのは、「関数にリトライ機能がないのはなぜか?」のような
まったく意味不明なことを言っている。
リトライは例外機能とは別に追加するするもの。
どんな箇所にでもリトライ機能は組み込める。
そして組み込むかどうかはアプリの仕様できまる。
> 大半の例外機構にリトライ機能がないのはなぜか知ってる?
ん?
例外機能とリトライ機能は全くの別物だからだよ。
お前が言ってるのは、「関数にリトライ機能がないのはなぜか?」のような
まったく意味不明なことを言っている。
リトライは例外機能とは別に追加するするもの。
どんな箇所にでもリトライ機能は組み込める。
そして組み込むかどうかはアプリの仕様できまる。
299仕様書無しさん
2011/07/03(日) 21:34:38.55 >>295
0除算が影響するデータはtryブロックから絶対出てこないんだ。へぇ〜。
じゃあその結果はどこで受け取る予定だったんだろうね。
スタックトレースをそのプログラムで解析して、ゼロ除算になった変数を特定しデータを復帰するの?
俺が場所が解るってのはそういう事なんだけど。データ破損についていってるのにスタックトレースとか入門者かよ。
0除算が影響するデータはtryブロックから絶対出てこないんだ。へぇ〜。
じゃあその結果はどこで受け取る予定だったんだろうね。
スタックトレースをそのプログラムで解析して、ゼロ除算になった変数を特定しデータを復帰するの?
俺が場所が解るってのはそういう事なんだけど。データ破損についていってるのにスタックトレースとか入門者かよ。
300仕様書無しさん
2011/07/03(日) 21:36:40.80 > 例外が起こり得た範囲の値は全て信用できないからなんだってさ。
聞いたこと無いんだが。
信じる信じないも、そこに書いたコードで示されているとおり。
CPUの割り込みの話と勘違いしてるだろ?w
聞いたこと無いんだが。
信じる信じないも、そこに書いたコードで示されているとおり。
CPUの割り込みの話と勘違いしてるだろ?w
301仕様書無しさん
2011/07/03(日) 21:37:41.58302仕様書無しさん
2011/07/03(日) 21:37:46.77303仕様書無しさん
2011/07/03(日) 21:40:09.26 >>300 今例外全般の話をしてないよ。
この1つのレスに答えてるだけ。例外自体は原因を特定できるけどそんな問題じゃない。
> 291 名前:仕様書無しさん [sage]: 2011/07/03(日) 21:11:02.26
> >>287
> お前は例外処理でなにをしようと考えてるんだ?
> 0除算が発生したらやることはない?素人か?
> 実際に動くアプリを作ったことがないのか?
>
>
> やるかやらないかは、アプリの仕様次第だが、
> 0除算が発生したときにやることはたくさんある。
>
> ・0除算が発生したことを画面に表示する。
> ・0除算が発生したことをログに記録する。
> ・スタックトレースを表示する。
> ・0除算が発生した処理のみを中断させ、正常なコマンド入力状態戻す。
>
> やることはたくさんあるだろ。
この1つのレスに答えてるだけ。例外自体は原因を特定できるけどそんな問題じゃない。
> 291 名前:仕様書無しさん [sage]: 2011/07/03(日) 21:11:02.26
> >>287
> お前は例外処理でなにをしようと考えてるんだ?
> 0除算が発生したらやることはない?素人か?
> 実際に動くアプリを作ったことがないのか?
>
>
> やるかやらないかは、アプリの仕様次第だが、
> 0除算が発生したときにやることはたくさんある。
>
> ・0除算が発生したことを画面に表示する。
> ・0除算が発生したことをログに記録する。
> ・スタックトレースを表示する。
> ・0除算が発生した処理のみを中断させ、正常なコマンド入力状態戻す。
>
> やることはたくさんあるだろ。
304仕様書無しさん
2011/07/03(日) 21:41:12.72 あー、こんな話をきたことがあるわ。
アセンブラバリバリ出来る人が
C言語を理解出来ない。
C言語で変数使うと、
このメモリマップはどうなっているのか?と
聞くようなやつがいるって。
アセンブラの知識で気にすることを
C言語でも気にしてしまう。
本来気にする必要がないことを
気にしてしまう。そういう柔軟性のないヤツのことを。
ゼロ除算になった変数を特定することを
気にするのはなぜなんだろうねw
ゼロ除算になったソースコードの行を気にするのならまだ分かるが。(行は取得できる)
アセンブラバリバリ出来る人が
C言語を理解出来ない。
C言語で変数使うと、
このメモリマップはどうなっているのか?と
聞くようなやつがいるって。
アセンブラの知識で気にすることを
C言語でも気にしてしまう。
本来気にする必要がないことを
気にしてしまう。そういう柔軟性のないヤツのことを。
ゼロ除算になった変数を特定することを
気にするのはなぜなんだろうねw
ゼロ除算になったソースコードの行を気にするのならまだ分かるが。(行は取得できる)
306仕様書無しさん
2011/07/03(日) 21:42:16.52 この人は変数=レジスタなんじゃないだろうか?w
307仕様書無しさん
2011/07/03(日) 21:49:46.30 めんどくせぇなぁ。
このコードでゼロ除算が発生した場合、
このクラスのオブジェクトが健全だと言えるのか?
もちろんこのコード自体に問題があるが、
具体的に回避策を上げてみろよ。
class Sample implments Interface
{
public void setValue(int value){・・・}
public int getValue(){・・・}
public void exampleMethod()
{
try
{
Example example = new Example();
example.Method(this);
}
catch(・・・ゼロ除算キャッチ・・・)
{
>>303
}
}
}
このコードでゼロ除算が発生した場合、
このクラスのオブジェクトが健全だと言えるのか?
もちろんこのコード自体に問題があるが、
具体的に回避策を上げてみろよ。
class Sample implments Interface
{
public void setValue(int value){・・・}
public int getValue(){・・・}
public void exampleMethod()
{
try
{
Example example = new Example();
example.Method(this);
}
catch(・・・ゼロ除算キャッチ・・・)
{
>>303
}
}
}
308仕様書無しさん
2011/07/03(日) 21:51:46.15 見づらいんで直した。
class Sample implments Interface
{
public void setValue(int value){・・・}
public int getValue(){・・・}
public void exampleMethod()
{
try
{
Example example = new Example();
example.Method(this);
}
catch(・・・ゼロ除算キャッチ・・・)
{
>>303
}
}
}
class Sample implments Interface
{
public void setValue(int value){・・・}
public int getValue(){・・・}
public void exampleMethod()
{
try
{
Example example = new Example();
example.Method(this);
}
catch(・・・ゼロ除算キャッチ・・・)
{
>>303
}
}
}
309仕様書無しさん
2011/07/03(日) 22:01:40.25 この馬鹿相手にするのは疲れたから
0除算はこのスレの話題の対象外としていいんじゃないか?
0除算なんて、別にCPUの割り込みを使わなくて実装できるでしょ?
割り算がある箇所をコンパイルしたら、
if 割る数 = 0 then throw 例外 という機械語が生成される
擬似言語の話をしましょうやw
0除算はこのスレの話題の対象外としていいんじゃないか?
0除算なんて、別にCPUの割り込みを使わなくて実装できるでしょ?
割り算がある箇所をコンパイルしたら、
if 割る数 = 0 then throw 例外 という機械語が生成される
擬似言語の話をしましょうやw
310仕様書無しさん
2011/07/03(日) 22:02:21.10 でゼロ除算箇所を確実に特定し復帰する方法はある。
try
{
y /= x;
}
catch(・・・ゼロ除算キャッチ・・・)
{
>>303
}
ただし、この場合割り算一回に1個try catchが必要になる。
加えて、そこまで例外箇所を絞り込んでんなら初めからゼロ除算しないように修正しとくのが普通。
try
{
y /= x;
}
catch(・・・ゼロ除算キャッチ・・・)
{
>>303
}
ただし、この場合割り算一回に1個try catchが必要になる。
加えて、そこまで例外箇所を絞り込んでんなら初めからゼロ除算しないように修正しとくのが普通。
311仕様書無しさん
2011/07/03(日) 22:03:05.07 >>307
バグがあるコードが健全かどうか聞かれても困る。
例外が起きたとき、オブジェクトの状態が異常になることがあるが
それを回復させるのがcatchやfinallyの役割。
catchやfinallyの中で不安定になっていても、
それを抜けるときに回復させていれば問題ない。
回復させるというのは、処理を続行するということはではない。
不安定(不定)である部分をなくすということ。
エラーとして親関数に返すことも回復の一つ。
これぐらいヒントを与えれば、自分で気づけるだろ?
バグがあるコードが健全かどうか聞かれても困る。
例外が起きたとき、オブジェクトの状態が異常になることがあるが
それを回復させるのがcatchやfinallyの役割。
catchやfinallyの中で不安定になっていても、
それを抜けるときに回復させていれば問題ない。
回復させるというのは、処理を続行するということはではない。
不安定(不定)である部分をなくすということ。
エラーとして親関数に返すことも回復の一つ。
これぐらいヒントを与えれば、自分で気づけるだろ?
312仕様書無しさん
2011/07/03(日) 22:04:16.80313仕様書無しさん
2011/07/03(日) 22:04:35.71 >>310
if(x==0) {
return 'error';
} else {
y /= x;
}
こうすることに利点を三つ上げろ。
if(x==0) {
return 'error';
} else {
y /= x;
}
こうすることに利点を三つ上げろ。
315仕様書無しさん
2011/07/03(日) 22:06:17.36 >>311
具体的にコードを見せろ。素人じゃないんだろ。経験者なんだろ。さくっとコード出せるだろうが。
まさか、ゼロ除算に対するコード書いたこともないのに空論で語ってるだけのシステム土方か?
パッケージ開発した事があったりすれば解るだろ?
具体的にコードを見せろ。素人じゃないんだろ。経験者なんだろ。さくっとコード出せるだろうが。
まさか、ゼロ除算に対するコード書いたこともないのに空論で語ってるだけのシステム土方か?
パッケージ開発した事があったりすれば解るだろ?
316仕様書無しさん
2011/07/03(日) 22:07:50.46 >>312
結局さ、お前0除算を例外で処理することを
毛嫌いしているだけじゃね?
どうせ0除算するコードをなくすと言っても
計算する前に0かどうかチェックするだけだろ?
めんどくさいよね。特に式が長くなった時とかさ。
x = a + b / foo() - c;
とかさ。if使ったら面倒になるでしょ。
でお前はifしか使えないから、例外なんか食わず嫌いで使ってないだけ。
結局さ、お前0除算を例外で処理することを
毛嫌いしているだけじゃね?
どうせ0除算するコードをなくすと言っても
計算する前に0かどうかチェックするだけだろ?
めんどくさいよね。特に式が長くなった時とかさ。
x = a + b / foo() - c;
とかさ。if使ったら面倒になるでしょ。
でお前はifしか使えないから、例外なんか食わず嫌いで使ってないだけ。
318仕様書無しさん
2011/07/03(日) 22:11:33.09320仕様書無しさん
2011/07/03(日) 22:12:49.86323仕様書無しさん
2011/07/03(日) 22:16:21.62325仕様書無しさん
2011/07/03(日) 22:18:19.98328仕様書無しさん
2011/07/03(日) 22:23:52.22 誤解されてる気がするが、NoZeroObjectって名前のクラスを作るわけじゃないからな。
得られる値がゼロにならなければクラス名もメンバーも名前はなんでもいい訳だから。
得られる値がゼロにならなければクラス名もメンバーも名前はなんでもいい訳だから。
329仕様書無しさん
2011/07/03(日) 22:24:43.64 >>323
> ゼロ除算は発生しないよな?
つか、本末転倒だろ。
ゼロ除算エラーが発生しない代わりに
ゼロ代入エラーに変っただけじゃん。
割り算するたびに変数の値を、そのNoZeroObjectとやらに
一回代入して0かどうかの実行時チェックをするのか?
毎回毎回。ifでやる面倒さをなにも解決していない。
頭悪いよ。
もしゼロ代入エラーにならないのなら、
xが0になることもないわけで、
そもそもy/=xで例外が発生することもない。
> ゼロ除算は発生しないよな?
つか、本末転倒だろ。
ゼロ除算エラーが発生しない代わりに
ゼロ代入エラーに変っただけじゃん。
割り算するたびに変数の値を、そのNoZeroObjectとやらに
一回代入して0かどうかの実行時チェックをするのか?
毎回毎回。ifでやる面倒さをなにも解決していない。
頭悪いよ。
もしゼロ代入エラーにならないのなら、
xが0になることもないわけで、
そもそもy/=xで例外が発生することもない。
331仕様書無しさん
2011/07/03(日) 22:26:07.05 このスレ、Javaでしか考えられないヤツが異様に多い割に、
オブジェクトの完全性とかそういう概念にはかなり疎いのな・・・。
オブジェクトの完全性とかそういう概念にはかなり疎いのな・・・。
332仕様書無しさん
2011/07/03(日) 22:28:38.28 で0除算にならないことをを保証する方法はないんだよね。
変数を使う前に、変数が0でないか
ifでチェックする方法はある。
だが、それは0除算にならないのではなく、
0除算になるコードに到達しないようにしているだけ。
もし到達してしまえば。0除算になる。
変数を使う前に、変数が0でないか
ifでチェックする方法はある。
だが、それは0除算にならないのではなく、
0除算になるコードに到達しないようにしているだけ。
もし到達してしまえば。0除算になる。
334仕様書無しさん
2011/07/03(日) 22:41:45.43 0除算エラーがなぜ実行時エラーなのかというと
0除算ってのはコンパイル段階で除去できないからだよ。
たとえばユーザーの入力結果が0になることがある。
0にならなくても、長い計算の末0になることがある。
ユーザーが入力しなくても何らかの統計データを合計して0になることがある。
だから0にならないことを保証する方法はない。
あるとしたら、0にならないようにチェックするコードを書くことだけ。
だがそれは、書けば0にならないが、書かなければ0になるということ。
チェックコードを書くという保証はやっぱり得られないので、
0にならない保証もない。だから0除算を防ぐことを保証する方法はない。
0除算ってのはコンパイル段階で除去できないからだよ。
たとえばユーザーの入力結果が0になることがある。
0にならなくても、長い計算の末0になることがある。
ユーザーが入力しなくても何らかの統計データを合計して0になることがある。
だから0にならないことを保証する方法はない。
あるとしたら、0にならないようにチェックするコードを書くことだけ。
だがそれは、書けば0にならないが、書かなければ0になるということ。
チェックコードを書くという保証はやっぱり得られないので、
0にならない保証もない。だから0除算を防ぐことを保証する方法はない。
335仕様書無しさん
2011/07/03(日) 22:42:32.15336仕様書無しさん
2011/07/03(日) 22:45:48.68338仕様書無しさん
2011/07/03(日) 23:04:25.53339仕様書無しさん
2011/07/03(日) 23:09:34.09 >>338
すでに例外とは全く関係ない話をしているな。
計算結果が0になるとき、それはどうする?
0が代入できないオブジェクトに代入するわけか?
その時に例外が発生するだろ。
その時データ破壊が防ぐことが可能だとなぜ言い切れる?
お前のコードで言えばこう言うことだ。
class Sample implments Interface
{
public void setValue(int value){・・・}
public int getValue(){・・・}
public void exampleMethod()
{
try
{
Example example = new Example();
example.Method(this);
}
catch(・・・ゼロ代入キャッチ・・・)
{
>>303
}
}
}
すでに例外とは全く関係ない話をしているな。
計算結果が0になるとき、それはどうする?
0が代入できないオブジェクトに代入するわけか?
その時に例外が発生するだろ。
その時データ破壊が防ぐことが可能だとなぜ言い切れる?
お前のコードで言えばこう言うことだ。
class Sample implments Interface
{
public void setValue(int value){・・・}
public int getValue(){・・・}
public void exampleMethod()
{
try
{
Example example = new Example();
example.Method(this);
}
catch(・・・ゼロ代入キャッチ・・・)
{
>>303
}
}
}
341仕様書無しさん
2011/07/03(日) 23:11:05.61 1.0除算の結果、その時の変数の値を信用することはできない。
2.ゆえに0除算を防げば、その時の変数の値を信用できる。
※1は間違い。
2.ゆえに0除算を防げば、その時の変数の値を信用できる。
※1は間違い。
342仕様書無しさん
2011/07/03(日) 23:13:43.49 そもそも勘違いは0除算をしたときに
オブジェクトが健全にならないと勘違いしていることだよ。
0除算に限らず、どんな例外が発生したとしても
そのクラスが正しく作られていない限り
オブジェクトは異常状態になりうる。
正しく作られていたなら、0除算が発生しても
オブジェクト自体は健全なまま。
それを踏まえて、0除算例外を0代入例外に
変えたとしても、オブジェクトは異常状態になりうるので
何の問題も解決しとらんのだよ。
オブジェクトが健全にならないと勘違いしていることだよ。
0除算に限らず、どんな例外が発生したとしても
そのクラスが正しく作られていない限り
オブジェクトは異常状態になりうる。
正しく作られていたなら、0除算が発生しても
オブジェクト自体は健全なまま。
それを踏まえて、0除算例外を0代入例外に
変えたとしても、オブジェクトは異常状態になりうるので
何の問題も解決しとらんのだよ。
343仕様書無しさん
2011/07/03(日) 23:15:43.12 本質を考えないまま、0除算さえ防げれば
問題解決すると考えているから、
0除算を0代入エラーにすればと訳のワカランのことを言ってるのね。
問題解決すると考えているから、
0除算を0代入エラーにすればと訳のワカランのことを言ってるのね。
344仕様書無しさん
2011/07/03(日) 23:16:59.00 >>339
ならんよ。だってゼロ除算と違って発生場所が圧倒的に少ないんだもん。
try
{
frameVector.sub(sourceVector);
return new NoZeroVector( frameVector );
}
catch(・・・禁止されたゼロベクタ・・・)
{
//図形が成立していないエラー
}
意味論理で考えれば、ゼロ除算の割る値になれる値が0になる箇所なんて
どう考えても最初から成立しない値になる。
ならんよ。だってゼロ除算と違って発生場所が圧倒的に少ないんだもん。
try
{
frameVector.sub(sourceVector);
return new NoZeroVector( frameVector );
}
catch(・・・禁止されたゼロベクタ・・・)
{
//図形が成立していないエラー
}
意味論理で考えれば、ゼロ除算の割る値になれる値が0になる箇所なんて
どう考えても最初から成立しない値になる。
345仕様書無しさん
2011/07/03(日) 23:19:28.56 >>344
言葉が変だった。
>意味論理で考えれば、ゼロ除算の割る値になれる値が0になる箇所なんて
>どう考えても最初から成立しない値になる。
どう考えても最初から成立しない値が発生してるのですぐ解る。
言葉が変だった。
>意味論理で考えれば、ゼロ除算の割る値になれる値が0になる箇所なんて
>どう考えても最初から成立しない値になる。
どう考えても最初から成立しない値が発生してるのですぐ解る。
346仕様書無しさん
2011/07/03(日) 23:20:51.05 >>344
圧倒的に少ないから、ならないというのは
どう考えても論理的ではない。
それにお前初期値の話しかしてないよな?
0になるのは、なにも関数の引数にした時だけじゃない。
長い計算の結果の途中で0になることだってある。
それをどうやって防ぐんだ?
もしかしてすべての変数を0代入不可オブジェクトにするのか。
四則演算し全て使えなくなりそうだな。
なんか俺俺ライブラリ作ってオナニーしているのが目に浮かぶw
圧倒的に少ないから、ならないというのは
どう考えても論理的ではない。
それにお前初期値の話しかしてないよな?
0になるのは、なにも関数の引数にした時だけじゃない。
長い計算の結果の途中で0になることだってある。
それをどうやって防ぐんだ?
もしかしてすべての変数を0代入不可オブジェクトにするのか。
四則演算し全て使えなくなりそうだな。
なんか俺俺ライブラリ作ってオナニーしているのが目に浮かぶw
347仕様書無しさん
2011/07/03(日) 23:21:33.27349仕様書無しさん
2011/07/03(日) 23:22:44.62350仕様書無しさん
2011/07/03(日) 23:24:17.52351仕様書無しさん
2011/07/03(日) 23:25:56.68 NoZeroなんたらを使ったところで、
try
{
NoZeroValue ret;
this.lock = 1;
ret = frameVector.sub(sourceVector);
this.lock = 0;
return ret;
}
catch(・・・禁止されたゼロベクタ・・・)
{
//図形が成立していないエラー
}
なんてコードを書かれたら、オブジェクトは不健全な状態になるわけだが。
この例だと、lockされたまま処理が終わってしまう。問題はなにも解決してない
try
{
NoZeroValue ret;
this.lock = 1;
ret = frameVector.sub(sourceVector);
this.lock = 0;
return ret;
}
catch(・・・禁止されたゼロベクタ・・・)
{
//図形が成立していないエラー
}
なんてコードを書かれたら、オブジェクトは不健全な状態になるわけだが。
この例だと、lockされたまま処理が終わってしまう。問題はなにも解決してない
352仕様書無しさん
2011/07/03(日) 23:27:13.21353仕様書無しさん
2011/07/03(日) 23:28:39.81354仕様書無しさん
2011/07/03(日) 23:28:59.95 >>350
だから、お前は初期値の話しかしてないと言うんだよ。
体積を入力してください?
高さを入力してください?
if(高さが==0){エラー}
こういう単純な話しかしてないだろ?
こんなふうに関数の最初で0かどうかチェックできるような例なら簡単だろうさ。
だから、お前は初期値の話しかしてないと言うんだよ。
体積を入力してください?
高さを入力してください?
if(高さが==0){エラー}
こういう単純な話しかしてないだろ?
こんなふうに関数の最初で0かどうかチェックできるような例なら簡単だろうさ。
355仕様書無しさん
2011/07/03(日) 23:29:45.49356仕様書無しさん
2011/07/03(日) 23:31:06.03 つでにゼロ除算エラーが入力地点まで上がっていった場合は、
どの入力した値が不正だったのか全く特定できなくなる。
図形の座標が原因とかそんな情報全くないからな。
どの入力した値が不正だったのか全く特定できなくなる。
図形の座標が原因とかそんな情報全くないからな。
357仕様書無しさん
2011/07/03(日) 23:32:25.63 >>351でNoZeroなんたらを使っていても
オブジェクトが不健全になる例は示した。
話はこれで終わったはずだが。
それから、0除算をしたとしても
それまでの結果をローカル変数に入れておけば
オブジェクトは健全なままになる。
結局、例外が起きたとき健全かどうかは
例外の種類を変更しただけで解決する問題ではなく
その時のロジックで決まるんだよ。
オブジェクトが不健全になる例は示した。
話はこれで終わったはずだが。
それから、0除算をしたとしても
それまでの結果をローカル変数に入れておけば
オブジェクトは健全なままになる。
結局、例外が起きたとき健全かどうかは
例外の種類を変更しただけで解決する問題ではなく
その時のロジックで決まるんだよ。
359仕様書無しさん
2011/07/03(日) 23:35:46.04 >>356
じゃあこの例で、どの時点で不正だったか特定してみ。
try
{
frameVector.1sub(sourceVector);
frameVector2.sub(sourceVector);
frameVector3.sub(sourceVector);
frameVector4 = frameVector3 / frameVector1;
frameVector5 = frameVector3 / frameVector2;
frameVector6 = frameVector4 / frameVector5;
return frameVector6;
}
catch(・・・禁止されたゼロベクタ・・・)
{
//図形が成立していないエラー
}
じゃあこの例で、どの時点で不正だったか特定してみ。
try
{
frameVector.1sub(sourceVector);
frameVector2.sub(sourceVector);
frameVector3.sub(sourceVector);
frameVector4 = frameVector3 / frameVector1;
frameVector5 = frameVector3 / frameVector2;
frameVector6 = frameVector4 / frameVector5;
return frameVector6;
}
catch(・・・禁止されたゼロベクタ・・・)
{
//図形が成立していないエラー
}
360仕様書無しさん
2011/07/03(日) 23:36:10.35361仕様書無しさん
2011/07/03(日) 23:38:05.52362仕様書無しさん
2011/07/03(日) 23:38:58.88 >>359
int i;
try
{
for(i=0;i<frameVector[i].length;++i) frameVector[i].sub(sourceVector);
{
catch(・・・禁止されたゼロベクタ・・・)
{
//図形が成立しんていない i番目の座標が異常
}
int i;
try
{
for(i=0;i<frameVector[i].length;++i) frameVector[i].sub(sourceVector);
{
catch(・・・禁止されたゼロベクタ・・・)
{
//図形が成立しんていない i番目の座標が異常
}
365仕様書無しさん
2011/07/03(日) 23:45:19.10 コード書き換えて、エラーの箇所を示すための変数を作って
いいなら0除算だって、どこの場所でエラーが起きたか分かるよな。
ここまで頭が悪い頑固爺は初めて見た。
int i;
try
{
for(i=0;i<value[i].length;++i) 100 / value[i]
{
catch(・・・禁止されたゼロベクタ・・・)
{
//i番目の値で0除算エラー
}
いいなら0除算だって、どこの場所でエラーが起きたか分かるよな。
ここまで頭が悪い頑固爺は初めて見た。
int i;
try
{
for(i=0;i<value[i].length;++i) 100 / value[i]
{
catch(・・・禁止されたゼロベクタ・・・)
{
//i番目の値で0除算エラー
}
366仕様書無しさん
2011/07/03(日) 23:51:55.20 >>361
そうですね。但し影響範囲は特定できる。
その情報はNoZeroが出した例外に入っているからね。
引数を書き忘れてたが、この引数自体は破損していないことが確定できる。
もちろんsource自体は、Exampleのオブジェクトに大しては毒だが、
新たなエラーの引き金にはならないことは解る。
例えばエラーメッセージとしてsourceの中身を参照する分には問題ない。
Example example = new Example();
example.>>351の処理(source);
>>363->>364
元がおかしいだろうが。なんで名前の一ベクトルが大量にあるんだよ。
その場合配列しか無いだろ。
仮に名前のついた配列が2本あったらその1個1個でtry-catch書くわ。
そうですね。但し影響範囲は特定できる。
その情報はNoZeroが出した例外に入っているからね。
引数を書き忘れてたが、この引数自体は破損していないことが確定できる。
もちろんsource自体は、Exampleのオブジェクトに大しては毒だが、
新たなエラーの引き金にはならないことは解る。
例えばエラーメッセージとしてsourceの中身を参照する分には問題ない。
Example example = new Example();
example.>>351の処理(source);
>>363->>364
元がおかしいだろうが。なんで名前の一ベクトルが大量にあるんだよ。
その場合配列しか無いだろ。
仮に名前のついた配列が2本あったらその1個1個でtry-catch書くわ。
367仕様書無しさん
2011/07/03(日) 23:53:20.75 > その情報はNoZeroが出した例外に入っているからね。
同じ情報が0除算例外にも入っている。
わかった?
同じ情報が0除算例外にも入っている。
わかった?
368仕様書無しさん
2011/07/03(日) 23:53:35.97 >>365 それがやりたいんならやればいいんじゃない?
意味合いが解ってて絶対ゼロが来ないと解っててもやってりゃいいんじゃない?
意味合いが解ってて絶対ゼロが来ないと解っててもやってりゃいいんじゃない?
369仕様書無しさん
2011/07/03(日) 23:55:20.33 話をまとめるとだな。
0除算例外か否かは全く関係なく、
エラー処理のロジックで例外時のオブジェクトの状態が決まるし、
また、エラー処理の作り込みのレベルで、どこまで詳細な情報を
取得できるかが決まるってことだよ。
いい加減気づけ。0除算かどうはは本質的に全く関係ないと。
0除算例外か否かは全く関係なく、
エラー処理のロジックで例外時のオブジェクトの状態が決まるし、
また、エラー処理の作り込みのレベルで、どこまで詳細な情報を
取得できるかが決まるってことだよ。
いい加減気づけ。0除算かどうはは本質的に全く関係ないと。
370仕様書無しさん
2011/07/03(日) 23:55:41.57 >>367 具体的にどうぞ。
例えば、exampleが図形で「図形で異常が起きたという例外」が発生すれば、
source側は無事だと解る。じゃゼロ除算の例外でsourceが無事であることをどうやって知るのかな?
例えば、exampleが図形で「図形で異常が起きたという例外」が発生すれば、
source側は無事だと解る。じゃゼロ除算の例外でsourceが無事であることをどうやって知るのかな?
372仕様書無しさん
2011/07/03(日) 23:57:40.71374仕様書無しさん
2011/07/04(月) 00:00:02.02 そもそもsourceってどのコードの話だ?
376仕様書無しさん
2011/07/04(月) 00:01:12.35 >>372
「図形が異常で起きたという例外」の仕様がそういう例外だからだ。
IOExceptionがオーバーランが原因で発生することがあるか?
問題の範囲は特定できるんだぞ。
逆にゼロ除算。まぁ別にnullぽでもいいがそっちにそういう仕様はあるか?
「図形が異常で起きたという例外」の仕様がそういう例外だからだ。
IOExceptionがオーバーランが原因で発生することがあるか?
問題の範囲は特定できるんだぞ。
逆にゼロ除算。まぁ別にnullぽでもいいがそっちにそういう仕様はあるか?
377仕様書無しさん
2011/07/04(月) 00:02:48.69 >>373
ん?
0除算が発生したときに、
「0除算が発生しました」とダイアログボックスを表示することは可能だし、
どうようにそれをファイルに保存すればログに記録できるし。
スタックトレースなら普通に出力されるし、
GUIアプリ、ウェブアプリで、0除算が発生しましたとでるが
アプリ自体は終了しないことはたくさんあると思うが?
ん?
0除算が発生したときに、
「0除算が発生しました」とダイアログボックスを表示することは可能だし、
どうようにそれをファイルに保存すればログに記録できるし。
スタックトレースなら普通に出力されるし、
GUIアプリ、ウェブアプリで、0除算が発生しましたとでるが
アプリ自体は終了しないことはたくさんあると思うが?
378仕様書無しさん
2011/07/04(月) 00:04:36.13379仕様書無しさん
2011/07/04(月) 00:05:16.02 >>376
例外自体に、オブジェクトの状態を変更しませんと
定義することはできんぞ。
同じ例外を出したとしても、その例外を発生するまでのロジックで
オブジェクトの状態を壊すかどうかが決まるんだからな。
「このメソッドで例外が起きてもオブジェクトの状態を変えません」と書かれていれば、
0除算例外がでたとしても、ほかの例外と同じく、状態を変えないという仕様だ。
例外自体に、オブジェクトの状態を変更しませんと
定義することはできんぞ。
同じ例外を出したとしても、その例外を発生するまでのロジックで
オブジェクトの状態を壊すかどうかが決まるんだからな。
「このメソッドで例外が起きてもオブジェクトの状態を変えません」と書かれていれば、
0除算例外がでたとしても、ほかの例外と同じく、状態を変えないという仕様だ。
380仕様書無しさん
2011/07/04(月) 00:06:26.08382仕様書無しさん
2011/07/04(月) 00:07:38.97 >>388
> スタックトレースをユーザーに見せるの?
お前は実務経験無いのか?
スタックトレースをユーザーに見せるかどうかは、
アプリの仕様しだいだろ。
ちなみに実際に見せてるアプリは多いぞ。
-vオプションとか-dオプション付けたら表示するものもある。
> スタックトレースをユーザーに見せるの?
お前は実務経験無いのか?
スタックトレースをユーザーに見せるかどうかは、
アプリの仕様しだいだろ。
ちなみに実際に見せてるアプリは多いぞ。
-vオプションとか-dオプション付けたら表示するものもある。
384仕様書無しさん
2011/07/04(月) 00:10:11.51 繰り返すが、例外の種類で
オブジェクトを壊すかどうかなんて決まったりはしない。
例外発生時にオブジェクトを壊すかどうかは、ロジックで決まる。
同じ例外を出したとしても、その例外を発生するまでのロジックで
オブジェクトの状態を壊すかどうかが決まるんだからな。
「このメソッドで例外が起きてもオブジェクトの状態を変えません」と書かれていれば、
0除算例外がでたとしても、ほかの例外と同じく、状態を変えないという仕様だ。
オブジェクトを壊すかどうかなんて決まったりはしない。
例外発生時にオブジェクトを壊すかどうかは、ロジックで決まる。
同じ例外を出したとしても、その例外を発生するまでのロジックで
オブジェクトの状態を壊すかどうかが決まるんだからな。
「このメソッドで例外が起きてもオブジェクトの状態を変えません」と書かれていれば、
0除算例外がでたとしても、ほかの例外と同じく、状態を変えないという仕様だ。
385仕様書無しさん
2011/07/04(月) 00:12:32.10 やっぱり0除算をCPU例外の0除算と
勘違いしている馬鹿ではないだろうか?
ぜんぜん違う。0除算はほかの例外と全く一緒。
0で割ったときに発生するというだけで
得られる情報も、オブジェクトの状態も
全く変わらない。
勘違いしている馬鹿ではないだろうか?
ぜんぜん違う。0除算はほかの例外と全く一緒。
0で割ったときに発生するというだけで
得られる情報も、オブジェクトの状態も
全く変わらない。
386仕様書無しさん
2011/07/04(月) 00:16:24.23 え? 0除算が発生したら
その時点でオブジェクトが壊れるんじゃないの?
たとえば、全く関係ないプライベート変数の値が変化したり。
って本気で思ってそうw
その時点でオブジェクトが壊れるんじゃないの?
たとえば、全く関係ないプライベート変数の値が変化したり。
って本気で思ってそうw
387仕様書無しさん
2011/07/04(月) 00:18:10.75 >>381
んな事いってないだろ。「0除算が発生しました」という無能の極みみたいなメッセージ出すだけならもんだいねぇよ。
それより、健全なオブジェクトと壊れたオブジェクトを判別できない事。なんかい同じ事を書かせんだよ。
問題が発生したオブジェクトが特定できないと、どれが壊れてるか解らないまま処理を継続する事になり、
多少処理する例外処理も失敗するわ、健全なデータも判別できないから、健全なデータも破棄する事になるわ問題が発生するから処理継続は無理と書いてる。
んな事いってないだろ。「0除算が発生しました」という無能の極みみたいなメッセージ出すだけならもんだいねぇよ。
それより、健全なオブジェクトと壊れたオブジェクトを判別できない事。なんかい同じ事を書かせんだよ。
問題が発生したオブジェクトが特定できないと、どれが壊れてるか解らないまま処理を継続する事になり、
多少処理する例外処理も失敗するわ、健全なデータも判別できないから、健全なデータも破棄する事になるわ問題が発生するから処理継続は無理と書いてる。
389仕様書無しさん
2011/07/04(月) 00:40:16.35390仕様書無しさん
2011/07/04(月) 00:45:44.10 じゃ極論しよう。
・壊れたオブジェクト
・無事なオブジェクト
この2種類を判断できない状況で処理を行うな。以上。
・壊れたオブジェクト
・無事なオブジェクト
この2種類を判断できない状況で処理を行うな。以上。
391仕様書無しさん
2011/07/04(月) 00:55:49.20393仕様書無しさん
2011/07/04(月) 00:58:31.28 >>387
例外発生時に発生する副作用が特定できるように、
例外安全性を意識した設計と文書化を行いましょう。
それができてない前提であれば、あなたの言うとおりかもしれません。
でもそれは例外という機能による不可避な問題ではないのです。
例外発生時に発生する副作用が特定できるように、
例外安全性を意識した設計と文書化を行いましょう。
それができてない前提であれば、あなたの言うとおりかもしれません。
でもそれは例外という機能による不可避な問題ではないのです。
394仕様書無しさん
2011/07/04(月) 00:59:40.99395仕様書無しさん
2011/07/04(月) 01:00:02.46 もう一点、この問題はエラー通知方法に例外を使った場合にのみ発生するものでもありません。
396仕様書無しさん
2011/07/04(月) 01:01:00.44 >>390
当たり前w
それをお前は例外の種類で区別できると
言っていた大馬鹿者ってだけだ。
ロジックの途中で例外が発生した時、オブジェクトが壊れるかどうかは
ロジックの内容できまるのであって、例外で決まることはない。
たとえ0除算が起こったとしても、それまでの処理の結果を
ローカル変数を使うなどしてオブジェクトを変化させていなければ
オブジェクトが壊れることはない。
また、他のどの例外が発生したとしても、その例外が発生するまでの間で
オブジェクトの状態を変化させていれば、オブジェクトは壊れる。
たとえば、NoZeroObjectに0を代入する前に、オブジェクトの状態を変化させていれば
当然0を代入して例外が発生すると、オブジェクトの状態は壊れている。
当たり前w
それをお前は例外の種類で区別できると
言っていた大馬鹿者ってだけだ。
ロジックの途中で例外が発生した時、オブジェクトが壊れるかどうかは
ロジックの内容できまるのであって、例外で決まることはない。
たとえ0除算が起こったとしても、それまでの処理の結果を
ローカル変数を使うなどしてオブジェクトを変化させていなければ
オブジェクトが壊れることはない。
また、他のどの例外が発生したとしても、その例外が発生するまでの間で
オブジェクトの状態を変化させていれば、オブジェクトは壊れる。
たとえば、NoZeroObjectに0を代入する前に、オブジェクトの状態を変化させていれば
当然0を代入して例外が発生すると、オブジェクトの状態は壊れている。
397仕様書無しさん
2011/07/04(月) 01:03:24.86 > ロジックによって壊れるかもしれない場合は、例外で判断するしか無い。
無理。こういうコードがあったとき、例外の内容を見て
壊れているかどうか判断することは不可能。
void func() {
try {
this.lock = true;
任意の例外
this.lock = false
} catch (任意の例外) {
}
}
無理。こういうコードがあったとき、例外の内容を見て
壊れているかどうか判断することは不可能。
void func() {
try {
this.lock = true;
任意の例外
this.lock = false
} catch (任意の例外) {
}
}
398仕様書無しさん
2011/07/04(月) 01:04:46.87 やっと話が集約してきたな。
0除算とは関係ない話だと
最初に行ったとおりさ。
0除算とは関係ない話だと
最初に行ったとおりさ。
399仕様書無しさん
2011/07/04(月) 01:08:49.38 まとめるとこうか。
1.
・壊れたオブジェクト
・無事なオブジェクト
この2種類を判断できない状況で処理を行うな。
2.
・ロジックによって壊れないことが保証されている場合は、そのとおり。
・ロジックによって壊れるかもしれない場合は、無事かどうかを例外で判断するしか無い。
健全なオブジェクトを判断するには、例外の判別が必要。
1.
・壊れたオブジェクト
・無事なオブジェクト
この2種類を判断できない状況で処理を行うな。
2.
・ロジックによって壊れないことが保証されている場合は、そのとおり。
・ロジックによって壊れるかもしれない場合は、無事かどうかを例外で判断するしか無い。
健全なオブジェクトを判断するには、例外の判別が必要。
401仕様書無しさん
2011/07/04(月) 01:11:34.95 > ・ロジックによって壊れるかもしれない場合は、無事かどうかを例外で判断するしか無い。
あ、これは訂正すべきだな。
ロジックによって壊れる場合、例外を見たところで
無事かどうか判断できない。
そもそも「ロジックによって壊れる場合」は壊れるに決まってるかw
あ、これは訂正すべきだな。
ロジックによって壊れる場合、例外を見たところで
無事かどうか判断できない。
そもそも「ロジックによって壊れる場合」は壊れるに決まってるかw
402仕様書無しさん
2011/07/04(月) 01:14:21.27 >>400
おかしいという根拠は
最後まで出てないと思うがw
実際に、0除算例外が起きたときに
ダイアログにそのことを表示するコードはかけるし。
その証拠としてはこのコード。
class Sample implments Interface
{
public void setValue(int value){・・・}
public int getValue(){・・・}
public void exampleMethod()
{
try
{
Example example = new Example();
example.Method(this);
}
catch(・・・ゼロ除算キャッチ・・・)
{
ダイアログ表示("0除算が発生しました");
}
}
}
おかしいという根拠は
最後まで出てないと思うがw
実際に、0除算例外が起きたときに
ダイアログにそのことを表示するコードはかけるし。
その証拠としてはこのコード。
class Sample implments Interface
{
public void setValue(int value){・・・}
public int getValue(){・・・}
public void exampleMethod()
{
try
{
Example example = new Example();
example.Method(this);
}
catch(・・・ゼロ除算キャッチ・・・)
{
ダイアログ表示("0除算が発生しました");
}
}
}
403仕様書無しさん
2011/07/04(月) 01:15:30.50 0除算に限らず、任意の例外(0除算含む)が発生したときに
そのことをログに記録するなんてことは
普通に行われているよ。
そのことをログに記録するなんてことは
普通に行われているよ。
404仕様書無しさん
2011/07/04(月) 01:19:46.49 >>397
例外はランダムじゃないから判断できるだろ。
void func(Source source)
{
try
{
int value = 0;
・・・処理・・・
source.add(value);//add内で例外が発生した場合、sourceは破損。
}
catch(・・・funcが所属するオブジェクトで発生した例外・・・)
{
//・・・funcが所属するオブジェクトが壊れた例外を出す。
}
}
受け取る側は、funcが所属するオブジェクトが壊れた例外かそうでないかで、
sourceがまだ健全であることを判断できる。もちろんaddが行われてないんで
その分結果が違うが。source自体に変化が無いことは解れば十分。
例外はランダムじゃないから判断できるだろ。
void func(Source source)
{
try
{
int value = 0;
・・・処理・・・
source.add(value);//add内で例外が発生した場合、sourceは破損。
}
catch(・・・funcが所属するオブジェクトで発生した例外・・・)
{
//・・・funcが所属するオブジェクトが壊れた例外を出す。
}
}
受け取る側は、funcが所属するオブジェクトが壊れた例外かそうでないかで、
sourceがまだ健全であることを判断できる。もちろんaddが行われてないんで
その分結果が違うが。source自体に変化が無いことは解れば十分。
407仕様書無しさん
2011/07/04(月) 01:22:41.97 >>404
だから判断できるのは例外ではなく
そのロジック限定のことだろ。
ロジックを見ることなく、例外だけで判断できるというのなら
そのロジック隠した。このロジックで例外が発生したとき
壊れないと言い切れる根拠は何だ?
void func(Source source)
{
try
{
・・・処理の内容は秘密・・・
例外発生
・・・処理の内容は秘密・・・
}
catch(・・・funcが所属するオブジェクトで発生した例外・・・)
{
//・・・funcが所属するオブジェクトが壊れた例外を出す。
}
}
だから判断できるのは例外ではなく
そのロジック限定のことだろ。
ロジックを見ることなく、例外だけで判断できるというのなら
そのロジック隠した。このロジックで例外が発生したとき
壊れないと言い切れる根拠は何だ?
void func(Source source)
{
try
{
・・・処理の内容は秘密・・・
例外発生
・・・処理の内容は秘密・・・
}
catch(・・・funcが所属するオブジェクトで発生した例外・・・)
{
//・・・funcが所属するオブジェクトが壊れた例外を出す。
}
}
409仕様書無しさん
2011/07/04(月) 01:24:16.57411仕様書無しさん
2011/07/04(月) 01:28:29.39 >>409
だから、例外を見ただけでオブジェクトが壊れているかどうかを判断することは
不可能だってばw
どういう理屈で判断できるのか
説明してみ。
どうせこのロジック(メソッド)では壊れないと
書いてあるからが答えだろ。
ほら例外の種類ではない。
だから、例外を見ただけでオブジェクトが壊れているかどうかを判断することは
不可能だってばw
どういう理屈で判断できるのか
説明してみ。
どうせこのロジック(メソッド)では壊れないと
書いてあるからが答えだろ。
ほら例外の種類ではない。
412仕様書無しさん
2011/07/04(月) 01:32:00.11 一体なんのためにすべての割り算に例外を書くのか理解出来ない。
例外処理は一箇所にまとめることが可能なのを知らないのだろうか?
そのまとめた例外処理コードから、例外が起きた詳細な情報を
取得できることを知らないのだろうか?
例外をキャッチするだけの人だと、自分で詳しい例外を作って投げるという発想がないのかな?
例外処理は一箇所にまとめることが可能なのを知らないのだろうか?
そのまとめた例外処理コードから、例外が起きた詳細な情報を
取得できることを知らないのだろうか?
例外をキャッチするだけの人だと、自分で詳しい例外を作って投げるという発想がないのかな?
413仕様書無しさん
2011/07/04(月) 01:36:58.34415仕様書無しさん
2011/07/04(月) 01:39:41.00 > 「funcが所属するオブジェクトが壊れた例外」がfuncが所属する
> オブジェクトが壊れた時にしか出ないことを仕様として決めてる限り明らかじゃん。
うん、だからロジックによって決まると言うことでしょうがw
もしその例外を俺が作ったロジックから投げたとして
例外を見れば、オブジェクトが壊れないと判断できるか?
実際に可能なことだぞ。俺が作ったロジックから
その例外を投げることは。
> オブジェクトが壊れた時にしか出ないことを仕様として決めてる限り明らかじゃん。
うん、だからロジックによって決まると言うことでしょうがw
もしその例外を俺が作ったロジックから投げたとして
例外を見れば、オブジェクトが壊れないと判断できるか?
実際に可能なことだぞ。俺が作ったロジックから
その例外を投げることは。
416仕様書無しさん
2011/07/04(月) 01:40:52.44 > 例外をキャッチするだけの人だと、自分で詳しい例外を作って投げるという発想がないのかな?
まさにこれかw
例外をキャッチするだけだから
自分で投げることを想定していない。
まさにこれかw
例外をキャッチするだけだから
自分で投げることを想定していない。
418仕様書無しさん
2011/07/04(月) 01:47:19.02 論破した、と必死に主張する奴に限って...
419仕様書無しさん
2011/07/04(月) 01:49:58.07 >>411
そういや、そうだよ。メソッドの仕様に書いてあるからだよ。うんそのとおり。
・ロジックによって壊れるかもしれない場合は、無事かどうかを例外で判断するしか無い
がよく解らないメソッドから出てきても例外だけで判断できると解釈されたんなら誤解だ。
どのオブジェクトが壊れたとき、どの例外が発生するかはメソッドの仕様で決まってる。
だから、どのオブジェクトが壊れたか判断できると書いたほうがただしかったか。
そういや、そうだよ。メソッドの仕様に書いてあるからだよ。うんそのとおり。
・ロジックによって壊れるかもしれない場合は、無事かどうかを例外で判断するしか無い
がよく解らないメソッドから出てきても例外だけで判断できると解釈されたんなら誤解だ。
どのオブジェクトが壊れたとき、どの例外が発生するかはメソッドの仕様で決まってる。
だから、どのオブジェクトが壊れたか判断できると書いたほうがただしかったか。
420仕様書無しさん
2011/07/04(月) 01:54:16.95 俺は、筋の通った間違いの指摘は、認めてるつもりだが、ここぞと同じ事を
言って掛かってくるやつ多いな。単に論破したいだけのヤツが多いんだろうか。
言って掛かってくるやつ多いな。単に論破したいだけのヤツが多いんだろうか。
421仕様書無しさん
2011/07/04(月) 02:02:38.04 俺様が認めてやってる感ぶりぶりで素敵!
424仕様書無しさん
2011/07/04(月) 02:16:17.89425仕様書無しさん
2011/07/04(月) 02:19:34.52426仕様書無しさん
2011/07/04(月) 02:19:48.43 >>424
だからすべての割り算に書く必要はないんだってばw
例外処理はひとつにまとめられるの。
そして一つにまとめたところで、
ローカル変数に途中の処理結果を入れていれば
どこで例外が起きても、オブジェクトのの完全性は保たれるんだってば。
だからすべての割り算に書く必要はないんだってばw
例外処理はひとつにまとめられるの。
そして一つにまとめたところで、
ローカル変数に途中の処理結果を入れていれば
どこで例外が起きても、オブジェクトのの完全性は保たれるんだってば。
428仕様書無しさん
2011/07/04(月) 02:34:32.55 >>426
double scale = 0;
try
{
point.x /= scale;
point.y /= scale;
}
catch(・・・)
{
//scaleは不正
}
こういうのだったら当然割り算度に書く必要ない。
そういう話じゃないわなぁ。
try
{
int a,b;
a /= scale;
b /= scale;
this.a = a;
this.b = b;
}
catch(・・・)
{
//scaleは不正
}
こういう話なんだろうか。
thisの健全性が高くなるのはたしかだね。
double scale = 0;
try
{
point.x /= scale;
point.y /= scale;
}
catch(・・・)
{
//scaleは不正
}
こういうのだったら当然割り算度に書く必要ない。
そういう話じゃないわなぁ。
try
{
int a,b;
a /= scale;
b /= scale;
this.a = a;
this.b = b;
}
catch(・・・)
{
//scaleは不正
}
こういう話なんだろうか。
thisの健全性が高くなるのはたしかだね。
429仕様書無しさん
2011/07/04(月) 02:40:16.05430仕様書無しさん
2011/07/04(月) 02:43:09.78 >>428
はぁ・・・。確かというか、例外が発生する可能性があるコードの前、
つまり関数の最初に引数をチェックして、それでOKならそれでいい。
だが引数チェックしたところで、すべての例外が起きなくなるわけじゃない。
むしろゼロ除算例外のように、引数チェックで例外が発生しないことを保証できることなんてまれ。
(つーか、ゼロ除算例外だって計算結果が0になってその値で割れば発生するから引数をチェックしたところで完璧ではない)
だから例外を発生させないようにするという考えは現実的ではなく、コード上のどの箇所で例外が起きても、
問題ない作りにする。これは0除算の限った話ではない。すべての箇所で同じような作りにする。
で、コード上のどこで例外が発生したとしても、問題ない作りにするには、
オブジェクトの状態を変えるコードは処理のなるべく後のほうでやって
途中はローカル変数のみを使ってコードを書く。
これはある程度実戦経験積んだ人にとっては当たり前に書くコードなんだが・・・。
ため息しか出ないよ。こんな初歩中の初歩をしらんやつだったとはな。
はぁ・・・。確かというか、例外が発生する可能性があるコードの前、
つまり関数の最初に引数をチェックして、それでOKならそれでいい。
だが引数チェックしたところで、すべての例外が起きなくなるわけじゃない。
むしろゼロ除算例外のように、引数チェックで例外が発生しないことを保証できることなんてまれ。
(つーか、ゼロ除算例外だって計算結果が0になってその値で割れば発生するから引数をチェックしたところで完璧ではない)
だから例外を発生させないようにするという考えは現実的ではなく、コード上のどの箇所で例外が起きても、
問題ない作りにする。これは0除算の限った話ではない。すべての箇所で同じような作りにする。
で、コード上のどこで例外が発生したとしても、問題ない作りにするには、
オブジェクトの状態を変えるコードは処理のなるべく後のほうでやって
途中はローカル変数のみを使ってコードを書く。
これはある程度実戦経験積んだ人にとっては当たり前に書くコードなんだが・・・。
ため息しか出ないよ。こんな初歩中の初歩をしらんやつだったとはな。
432仕様書無しさん
2011/07/04(月) 02:48:28.28 ついさっきまで、ゼロ除算だと・・・って
なんかゼロ除算だけに存在する問題が何かがあると
考えていた間抜けがいたけどなw
なんかゼロ除算だけに存在する問題が何かがあると
考えていた間抜けがいたけどなw
433仕様書無しさん
2011/07/04(月) 02:59:50.36 >>430 こっちの要点は健全なオブジェクトと壊れたオブジェクトを判別し、
安全な状態で処理または、例外処理を継続すること。
まぁ、そもそも保全に対する方向性が違うんだろうね。
俺だって"割り算毎に例外チェック"すんのは馬鹿げてると思う。
でも>>291の方法だとそうは行かない。だから、それを避ける手段を
NoZeroの流れと、メソッドの仕様と例外の区別を利用する流れで提示した。
まぁ、方向性が違うから他の人には納得する点は一切なかったらしい。
10個20個例外が発生する箇所をまとめてキャッチしたらどれが壊れてるのか解からん。
根本的にはゼロ除算は関係ないし、Nullポだろうが、
SQLExceptionだろうが、IOExceptionだろうが同じ話だったんだけどな。
それじゃ消えるよ。めんどうだから。
安全な状態で処理または、例外処理を継続すること。
まぁ、そもそも保全に対する方向性が違うんだろうね。
俺だって"割り算毎に例外チェック"すんのは馬鹿げてると思う。
でも>>291の方法だとそうは行かない。だから、それを避ける手段を
NoZeroの流れと、メソッドの仕様と例外の区別を利用する流れで提示した。
まぁ、方向性が違うから他の人には納得する点は一切なかったらしい。
10個20個例外が発生する箇所をまとめてキャッチしたらどれが壊れてるのか解からん。
根本的にはゼロ除算は関係ないし、Nullポだろうが、
SQLExceptionだろうが、IOExceptionだろうが同じ話だったんだけどな。
それじゃ消えるよ。めんどうだから。
434仕様書無しさん
2011/07/04(月) 03:08:59.06 >>433
> でも>>291の方法だとそうは行かない。だから、それを避ける手段を
> NoZeroの流れと、メソッドの仕様と例外の区別を利用する流れで提示した。
それじゃ無理。あくまで関数の最初でチェックできることにしか対応できない。
途中の計算で値が0になったらどうする?
どっちみち処理の途中で例外が発生することになる。
処理の途中で例外が発生することを防ぐことは不可能なのだから、
その場合でもオブジェクトが壊れないようにするには処理の途中でオブジェクトの状態を
変更しないようにローカル変数を使う。普通はそのようにコードを書く。
どうしてもそれが不可能な場合のみ、catchかfinallyで復帰処理を書く。
それがコーディングのセオリーだ。
> 10個20個例外が発生する箇所をまとめてキャッチしたらどれが壊れてるのか解からん。
わかる。例外オブジェクトにどこが壊れているか情報が格納されている。
どうしてもわからないのなら、自分で情報を追加すればいいだけの話。
結局お前は、技術力不足により意味のない俺俺解決方法を思いつき
それを偉そうに語っていただけ。お前の保全に対する方向性が斜め上を向いていただけの話。
実戦経験がないから、変な方法を思いつく。頭が良いのではなく頭が悪い証拠だ。
> それじゃ消えるよ。めんどうだから。
できれば今後一切出てくるな。初心者の相手は面倒だ。
> でも>>291の方法だとそうは行かない。だから、それを避ける手段を
> NoZeroの流れと、メソッドの仕様と例外の区別を利用する流れで提示した。
それじゃ無理。あくまで関数の最初でチェックできることにしか対応できない。
途中の計算で値が0になったらどうする?
どっちみち処理の途中で例外が発生することになる。
処理の途中で例外が発生することを防ぐことは不可能なのだから、
その場合でもオブジェクトが壊れないようにするには処理の途中でオブジェクトの状態を
変更しないようにローカル変数を使う。普通はそのようにコードを書く。
どうしてもそれが不可能な場合のみ、catchかfinallyで復帰処理を書く。
それがコーディングのセオリーだ。
> 10個20個例外が発生する箇所をまとめてキャッチしたらどれが壊れてるのか解からん。
わかる。例外オブジェクトにどこが壊れているか情報が格納されている。
どうしてもわからないのなら、自分で情報を追加すればいいだけの話。
結局お前は、技術力不足により意味のない俺俺解決方法を思いつき
それを偉そうに語っていただけ。お前の保全に対する方向性が斜め上を向いていただけの話。
実戦経験がないから、変な方法を思いつく。頭が良いのではなく頭が悪い証拠だ。
> それじゃ消えるよ。めんどうだから。
できれば今後一切出てくるな。初心者の相手は面倒だ。
439仕様書無しさん
2011/07/04(月) 03:23:56.55 >>438
おれこの口論にゃ参加してないよ。
話を聞き出すならともかく、自分の意見を相手に
押し付けあうなんてバカバカしいじゃん。
社会人なら解るはずだけど?
だから、どっちも実践あるとは思えないって書いたの。
おれこの口論にゃ参加してないよ。
話を聞き出すならともかく、自分の意見を相手に
押し付けあうなんてバカバカしいじゃん。
社会人なら解るはずだけど?
だから、どっちも実践あるとは思えないって書いたの。
440仕様書無しさん
2011/07/04(月) 03:25:42.33 > おれこの口論にゃ参加してないよ。
うんだろうね。
なにも発言せず、偉そうな態度。
よくあるパターンだw
うんだろうね。
なにも発言せず、偉そうな態度。
よくあるパターンだw
441Perl忍者
2011/08/01(月) 15:04:01.29 最初から例外でないようにかけばいいじゃんバカだな
本当にバカだな
書く必要ないさっさと消えろ
本当にバカだな
書く必要ないさっさと消えろ
442仕様書無しさん
2011/08/01(月) 15:06:01.56 え?
443仕様書無しさん
2011/08/01(月) 22:00:14.89 真性の阿呆はそっとしておいてあげてください
445仕様書無しさん
2011/08/05(金) 12:44:35.98 久々にスレ覗いたけど前に比べて活気がないね
446仕様書無しさん
2011/08/05(金) 15:35:07.55 適度な阿呆が独自論展開しはじめると盛り上がるけどねえ
ここまで酷い阿呆だとオモチャにもならないんで
ここまで酷い阿呆だとオモチャにもならないんで
447仕様書無しさん
2011/08/06(土) 12:31:57.67 餓鬼にはオモチャを与えないとな。
448仕様書無しさん
2011/08/08(月) 01:50:35.49 例外理解してない人は、例外意外もわりと理解してないな
449仕様書無しさん
2011/10/14(金) 23:15:27.49 いい加減な集約例外とか、統一性のないログ処理とか
もうやだ!
もうやだ!
450仕様書無しさん
2011/10/26(水) 02:30:34.39 例外とかあんま関係ないけど、
条件が間違ってたとか、明らかにコーディングミスで
落ちてる場合って客にどういうメッセージ見せるべきよ?
「予期せぬエラーが発生しました」「システムエラーです」っつうのも、
明らかにうちのミスであって、システム的に未知の異常が発生した
訳じゃないから言い訳がましいように感じる。
条件が間違ってたとか、明らかにコーディングミスで
落ちてる場合って客にどういうメッセージ見せるべきよ?
「予期せぬエラーが発生しました」「システムエラーです」っつうのも、
明らかにうちのミスであって、システム的に未知の異常が発生した
訳じゃないから言い訳がましいように感じる。
451仕様書無しさん
2011/10/26(水) 02:33:36.26 パスワードが違います
452仕様書無しさん
2011/10/26(水) 03:33:40.91 もういちどやりなおしてください。つづくばあいはれんらくしてください。的な。
453仕様書無しさん
2011/10/26(水) 07:53:43.15 もう一度やり直しては不味くね?
バグで有る以上、
バグかどうかは判断できてもどこで発生したかはわからんだろ。
事態を深刻にする可能性があるぞ。
バグで有る以上、
バグかどうかは判断できてもどこで発生したかはわからんだろ。
事態を深刻にする可能性があるぞ。
454仕様書無しさん
2011/10/26(水) 09:39:25.86 仕様上予期してないわけだし、システムがエラーなんだからそのままでいいだろ
だいたい、コーディングが悪いのかほんとに未知のエラーなのか判断できるなら対策しろよ
だいたい、コーディングが悪いのかほんとに未知のエラーなのか判断できるなら対策しろよ
456uy
2011/10/27(木) 01:33:42.33 ひとついわせてもらうと
こんなスレが伸びちゃうのが 日本のレベルの低い由縁
ありえねーだろ・・・・・・・ なんで理解しない
こんなスレが伸びちゃうのが 日本のレベルの低い由縁
ありえねーだろ・・・・・・・ なんで理解しない
457仕様書無しさん
2011/10/27(木) 02:57:11.91 kardとか書いちゃうヤツが、ずいぶんよその国に詳しいんだな。
458仕様書無しさん
2011/10/28(金) 03:12:22.82 触るときは本当に反応してあげる価値がある相手かを考えてから触ろう
技術不足でも、想定できてなかったら想定外のシステムエラー
もみ消したりして続行されるほうが追々困るので、その原因がバグであってもなんであっても
想定してない以上、中断して通知する必要あるよ
技術不足でも、想定できてなかったら想定外のシステムエラー
もみ消したりして続行されるほうが追々困るので、その原因がバグであってもなんであっても
想定してない以上、中断して通知する必要あるよ
459仕様書無しさん
2011/10/28(金) 21:00:21.08 それは解るんだが問題はどう通知するかなんだよ。
予期せぬエラーと報告する場合で、エラーの発生頻度が低いと
ユーザーが無視可能性があるでしょ。バグだったら取り返しが
つかないことになる前にさっさと報告してもらったほうがいい。
なので、やんわりと「バグだよごめんぬ。さっさとバグレポート送ってね。」的な事を
ユーザーに伝えたいんだ。それをどう伝えるべきかいい方法が思いうかばん。
予期せぬエラーと報告する場合で、エラーの発生頻度が低いと
ユーザーが無視可能性があるでしょ。バグだったら取り返しが
つかないことになる前にさっさと報告してもらったほうがいい。
なので、やんわりと「バグだよごめんぬ。さっさとバグレポート送ってね。」的な事を
ユーザーに伝えたいんだ。それをどう伝えるべきかいい方法が思いうかばん。
461仕様書無しさん
2011/10/29(土) 00:35:07.80 >>459
例えば給与会計のシステムで
誰かの勤務時間登録でエラーが出たらガン無視してExcelで手打ちする
みたいなオモシロイことをしやがる会社はある。
ユーザーもアホではないんで、なんとか凌ぐもんだよ。
あまり神経質になりすぎてもこっちが辛いだけでな。
まぁ今のところは本当の意味での例外、例を挙げれば
ソフトウェア以外の部分で生じたトラブル(LANケーブル断線とか、ODBCとかJDBCの設定ミス)
は例外扱いくらいだ。
DBのコネクション張れないとか、あるはずのJPGファイル読めない(ユーザーがファイルいじってね?)とか、そんなの。
例えば給与会計のシステムで
誰かの勤務時間登録でエラーが出たらガン無視してExcelで手打ちする
みたいなオモシロイことをしやがる会社はある。
ユーザーもアホではないんで、なんとか凌ぐもんだよ。
あまり神経質になりすぎてもこっちが辛いだけでな。
まぁ今のところは本当の意味での例外、例を挙げれば
ソフトウェア以外の部分で生じたトラブル(LANケーブル断線とか、ODBCとかJDBCの設定ミス)
は例外扱いくらいだ。
DBのコネクション張れないとか、あるはずのJPGファイル読めない(ユーザーがファイルいじってね?)とか、そんなの。
462461
2011/10/29(土) 00:37:03.64 Excelで手打ちして
は
Excelで手打ちして上司に『ごめんこの人たちデータ入りませんでしたてへっ☆で済ます
の意味だが。不思議に給与を振り込んでくれる素敵な上司に乾杯。
は
Excelで手打ちして上司に『ごめんこの人たちデータ入りませんでしたてへっ☆で済ます
の意味だが。不思議に給与を振り込んでくれる素敵な上司に乾杯。
464仕様書無しさん
2011/10/29(土) 01:02:18.53 このニートさんどんだけ暇なの
465仕様書無しさん
2011/10/29(土) 01:06:33.96466仕様書無しさん
2011/10/29(土) 03:35:05.93 ソースだせ→スルーして他スレ荒らしは典型パターン
逃げるか火病るかで話にならないので誰もソース出せとは言わなくなったぐらい
逃げるか火病るかで話にならないので誰もソース出せとは言わなくなったぐらい
467仕様書無しさん
2011/10/29(土) 14:12:59.14 一々触るやつも同類まとめてスルーしとけw
>>459
一度納品して、検査がおわっても見つかってない不具合であれば、あとは保守の内容次第だと思う
管理者の日常業務にログチェックを入れてあればそのうち見つかる
定期的にログチェックをやってるなら、エラーが出てたらその時点で対応検討できるからな
一度作ったら放置のような客のとこでは、そういうのは無理だし、そこは割り切れ
まぁ、大きな問題になると困るようなシステムならある程度の管理者がつくから、
ちゃんとログの内容チェックしてくれると思うよ
全体仕様に関われる案件であることが前提だけど、
エラー時のログファイルを日時でファイル名分けた別ファイル出力するようにしておくとかやると
普段あまりログの確認をしないところでも、エラーが見つけやすくなるから、そういう手もある
あとはログチェックから不具合調査依頼を出すための資料収集の手順書を作ってあげたりすると
必要な情報が取りやすくなるので、不具合起きるとマズそうな案件とかでは重宝するかも?
別ファイル化は前後の記録が取れないから、面倒なこともあるので一長一短だけどな
>>459
一度納品して、検査がおわっても見つかってない不具合であれば、あとは保守の内容次第だと思う
管理者の日常業務にログチェックを入れてあればそのうち見つかる
定期的にログチェックをやってるなら、エラーが出てたらその時点で対応検討できるからな
一度作ったら放置のような客のとこでは、そういうのは無理だし、そこは割り切れ
まぁ、大きな問題になると困るようなシステムならある程度の管理者がつくから、
ちゃんとログの内容チェックしてくれると思うよ
全体仕様に関われる案件であることが前提だけど、
エラー時のログファイルを日時でファイル名分けた別ファイル出力するようにしておくとかやると
普段あまりログの確認をしないところでも、エラーが見つけやすくなるから、そういう手もある
あとはログチェックから不具合調査依頼を出すための資料収集の手順書を作ってあげたりすると
必要な情報が取りやすくなるので、不具合起きるとマズそうな案件とかでは重宝するかも?
別ファイル化は前後の記録が取れないから、面倒なこともあるので一長一短だけどな
468仕様書無しさん
2011/10/29(土) 14:17:08.57 あとはメール通知とかって手もある。大きなシステムとかだとログも膨大だから
エラーや警告が出てたら通知メールを飛ばすって仕組みを用意してやる
もちろん、メールがこけることもあるので、定期的な死活監視用の通知も必要になる
大きなお仕事とかだと、そんなのもあると思う
いまやってる仕事は、業務エラーもシステムエラーも一緒くたに
Exceptionでキャッチしロギングする過去の遺産の糞F/Wの上に乗っかってるから
ユーザーが入力ミスしただけでスタックトレース吐かれて、ログチェックどころじゃねぇけどな!
例外を正しく使えないプログラマが多いね
エラーや警告が出てたら通知メールを飛ばすって仕組みを用意してやる
もちろん、メールがこけることもあるので、定期的な死活監視用の通知も必要になる
大きなお仕事とかだと、そんなのもあると思う
いまやってる仕事は、業務エラーもシステムエラーも一緒くたに
Exceptionでキャッチしロギングする過去の遺産の糞F/Wの上に乗っかってるから
ユーザーが入力ミスしただけでスタックトレース吐かれて、ログチェックどころじゃねぇけどな!
例外を正しく使えないプログラマが多いね
470仕様書無しさん
2011/10/29(土) 20:32:31.67 いらん安価いれてしもた
472仕様書無しさん
2011/11/06(日) 02:12:22.99 ふぅ。やっぱりこの結論に達するよねw
http://d.hatena.ne.jp/ryoasai/20110221/1298297258
システム系の例外は実行時例外+AOPでハンドリングするのがベスト
インフラ層のチェック例外はやはりJavaのBad Partだと思う
http://d.hatena.ne.jp/ryoasai/20110221/1298297258
システム系の例外は実行時例外+AOPでハンドリングするのがベスト
インフラ層のチェック例外はやはりJavaのBad Partだと思う
473仕様書無しさん
2011/11/08(火) 01:51:45.28 運用環境で発生する可能性が常にあり、なんかしらの処理を行う必要があるものなら
どのみち補足するし、別に検査例外で構わんとは思うけどな
ただ、フレームワークの多くのメソッドに throws Exception とかやられるくらいなら、
全部実行時例外にしてくれよって毎度思う
どのみち補足するし、別に検査例外で構わんとは思うけどな
ただ、フレームワークの多くのメソッドに throws Exception とかやられるくらいなら、
全部実行時例外にしてくれよって毎度思う
474仕様書無しさん
2011/11/10(木) 18:48:28.56 Android触っててJavaの割には妙にストレスが少ないと思ったら
ライブラリがほとんど検査例外使ってないんだな
ライブラリがほとんど検査例外使ってないんだな
476仕様書無しさん
2011/11/12(土) 18:24:29.39 JNIでC++アクセスできるなら、最初からC++ベースだけでもアプリ組めるようにしてほしいわ。
軽快に動くメディアプレーヤーつくろうとするとJavaとの通信が邪魔すぎる。
軽快に動くメディアプレーヤーつくろうとするとJavaとの通信が邪魔すぎる。
477仕様書無しさん
2011/12/19(月) 10:01:16.70 趣味マなんだけど例外って重要だと言われる割に
書籍とか探しても触りしか触れられてる物がおおくて正しく使えてるのか不安にはなる
まあ、趣味レベル何でとにかく動けば良いんだけどね、なんか気持ち悪い感じになる
書籍とか探しても触りしか触れられてる物がおおくて正しく使えてるのか不安にはなる
まあ、趣味レベル何でとにかく動けば良いんだけどね、なんか気持ち悪い感じになる
478仕様書無しさん
2011/12/19(月) 16:01:03.31 例外だけで一冊にまとまってる本あるだろ。
479仕様書無しさん
2011/12/19(月) 18:46:25.43 7スレ目でまだテンプレすらないぞ
先に言っておくが俺は作らないぞ
先に言っておくが俺は作らないぞ
482仕様書無しさん
2011/12/26(月) 20:43:58.76 えっ
483仕様書無しさん
2011/12/26(月) 22:54:50.57 だってそんなに複雑ってことはたくさんのバグや不具合を内包してるってことだろ?
484仕様書無しさん
2011/12/26(月) 23:15:42.19 そうだな。CPU捨てちまえ。
485仕様書無しさん
2011/12/26(月) 23:50:50.31 try-catchについて本一冊書いてんじゃなくて、
errnoを含め、例外情報を受け取った際どうしょりするか、
どういう状況は例外状況と判断するか、例外情報とは
どのような情報をまとめるべきかを書いてんだろ、
Exceptional〜とかな。
例外を try catch throw 構文そのものだと思うな。
errnoを含め、例外情報を受け取った際どうしょりするか、
どういう状況は例外状況と判断するか、例外情報とは
どのような情報をまとめるべきかを書いてんだろ、
Exceptional〜とかな。
例外を try catch throw 構文そのものだと思うな。
486仕様書無しさん
2011/12/27(火) 00:56:34.60487仕様書無しさん
2011/12/27(火) 01:04:59.40 java で throws Exception をみかけるとやる気なくなる
フレームワークの共通処理とか以外で catch(Exception e) を書かざるを得ない状況になるとげんなりする
こういう奴がいる環境だと、ほんと検査例外は邪魔にしかならんな
フレームワークの共通処理とか以外で catch(Exception e) を書かざるを得ない状況になるとげんなりする
こういう奴がいる環境だと、ほんと検査例外は邪魔にしかならんな
488仕様書無しさん
2011/12/27(火) 14:27:02.49 何も考えずログ吐いて握り潰しはもっと多い
489仕様書無しさん
2011/12/27(火) 15:05:16.78 ログだけでいいじゃん
何すんのさ
何すんのさ
490仕様書無しさん
2011/12/27(火) 19:06:12.13 ユーザー通知したり代替処理したりは普通にやるし、考慮されてなければ確認する
仕様書にないから無視とかやってると、使えないマだなっていうレッテルが貼られるわなぁ
仕様書にないから無視とかやってると、使えないマだなっていうレッテルが貼られるわなぁ
491仕様書無しさん
2011/12/27(火) 19:43:49.09 仕様書にない例外はバグだろ
495仕様書無しさん
2011/12/28(水) 11:09:53.00496仕様書無しさん
2011/12/28(水) 13:05:05.36 ケンカ腰になるな
497仕様書無しさん
2011/12/28(水) 17:59:51.67 匿名掲示板なんだから1レスしか書き込まれなかったら
そこで判断するしか無いだろうに
匿名の場において個人は、ひと続きのレスという
一時的な存在にしか見えないんだから
そこで判断するしか無いだろうに
匿名の場において個人は、ひと続きのレスという
一時的な存在にしか見えないんだから
498仕様書無しさん
2011/12/29(木) 20:04:04.72 例外が理解できてない馬鹿は仕様と戦う馬鹿でもある
499仕様書無しさん
2011/12/31(土) 00:07:28.48 エラーはすべて例外にする例外原理主義
慣れると正常系と異常系の処理がきっちり分けられて便利
慣れると正常系と異常系の処理がきっちり分けられて便利
500仕様書無しさん
2012/01/03(火) 15:59:09.29 例外は東京電力の非常用発電機みたいなもの
想定外です
想定外です
502仕様書無しさん
2012/01/05(木) 21:09:00.86 IDやIPの類も無しに違う文体、違う内容を書きこまれて
同一人物だと断定できるんだ(´・∀・`)ヘーすごいね
同一人物だと断定できるんだ(´・∀・`)ヘーすごいね
503仕様書無しさん
2012/01/06(金) 02:48:33.88 相変わらずこのスレは痛い子が多いな
504仕様書無しさん
2012/01/07(土) 01:48:46.85505仕様書無しさん
2012/01/07(土) 02:31:16.03 キチガイに構うなよ
506仕様書無しさん
2012/01/07(土) 10:00:14.89 まぁ、「心療内科池行け」としか言ってないわな
それが何を意味するか解釈すんのは人それぞれだけど
それが何を意味するか解釈すんのは人それぞれだけど
507仕様書無しさん
2012/01/07(土) 11:42:01.70 昔からこのスレは頭の弱い子沸いてるんだから、いちいち構うなって
508仕様書無しさん
2012/01/17(火) 22:06:06.17 例外なんて書かねーよ感じろバーカ
509仕様書無しさん
2012/01/24(火) 00:12:02.15 他の要求と矛盾しない限り書いておけよばかw
510仕様書無しさん
2012/01/24(火) 01:11:50.51 例外すら使い分けとかできない奴ってまだ居るの
511仕様書無しさん
2012/03/17(土) 14:29:37.84 あげ
512仕様書無しさん
2012/03/19(月) 09:22:56.05 お前らって時給1000しかもらえNASAそう。
513仕様書無しさん
2012/03/19(月) 21:53:40.51 どうした、何か辛いことでもあったのか?
514仕様書無しさん
2012/03/20(火) 13:04:56.00 その前にお前ら自身が例外な事に気づけ
515仕様書無しさん
2012/03/20(火) 16:48:22.02 それをキャッチできずにスルーしてるからどうにもならんのじゃないか(´・ω・`)
516仕様書無しさん
2012/04/17(火) 23:59:23.72 使えないっていうか、理解してないし理解しようともしないし理解する能力もないっていう、そういうのが多い
517仕様書無しさん
2012/04/18(水) 09:59:04.40 問題押し付けるの止めてくださいというのも多い。
518仕様書無しさん
2012/04/18(水) 10:17:01.96 いやそれは自分に出来ないことを他人に押し付けるのは誰もいい顔しないだろう
519仕様書無しさん
2012/04/18(水) 20:32:22.30 押し付けるとか、そういう使い方をするもんじゃないしなw
処理からするとどう対応するかが決まってない問題とかは例外
処理を呼ぶ側がどう処理するかを決めれるようにするものだしな
同じ対応する異常系を集約しやすいからちゃんと作ってあれば超便利
でも例外理解できない奴は例外==悪い事、程度の認識しかなくて、発生するとふぁびょる
処理からするとどう対応するかが決まってない問題とかは例外
処理を呼ぶ側がどう処理するかを決めれるようにするものだしな
同じ対応する異常系を集約しやすいからちゃんと作ってあれば超便利
でも例外理解できない奴は例外==悪い事、程度の認識しかなくて、発生するとふぁびょる
520仕様書無しさん
2012/04/18(水) 20:40:26.10 そんなに複雑な理由じゃなく、単に正しい結果を返せないなら例外だろ。
521仕様書無しさん
2012/04/20(金) 00:46:07.18 職場で例外処理使用禁止になりそうです。
あるできるプログラマーが例外を理解してなくて、
例外の使い方を間違えて、例外が遅くてわかりにくい機能だということにされた。
Googleのコーディングルールに例外を使わないよううたわれていることが致命傷だった。
あるできるプログラマーが例外を理解してなくて、
例外の使い方を間違えて、例外が遅くてわかりにくい機能だということにされた。
Googleのコーディングルールに例外を使わないよううたわれていることが致命傷だった。
522仕様書無しさん
2012/04/20(金) 07:01:37.33 >あるできるプログラマーが例外を理解してなくて
できねぇだろそいつ。つかAPIが投げてくる例外どーすんのさ。全部呼び元で握りつぶすのか?
できねぇだろそいつ。つかAPIが投げてくる例外どーすんのさ。全部呼び元で握りつぶすのか?
523仕様書無しさん
2012/04/20(金) 10:32:25.50 そんなんが「できるプログラマー」って時点で終わってるので、
とっとと逃げて、トドメのために魚雷ぶちこんでやるのが男の情け、という気がする。
とっとと逃げて、トドメのために魚雷ぶちこんでやるのが男の情け、という気がする。
524仕様書無しさん
2012/04/20(金) 14:42:46.35 運用時に例外投げてくれる可能性があるからAPIのはなんとか握り潰して
自分等では使わない方針は俺は賛成
そもそもメソッドの結果なんて成功か失敗か(bool型)で足りるのに
わざわざ返す例外を1つ1つ全部呼び元で対処しなくちゃいけない仕様はおかしい
100箇所でメソッド呼んだら100箇所で同じ対処せなあかんのかと・・・?
使う側がマニュアルみて例外の対処1つ1つ・・・ってその発行した例外が出たときに
何をしなきゃいけないのか知ってるのは間違いなく例外なげた奴のほうだろ?
だったらてめぇのメソッド内でやれよ
外側からできる仕様にしてやっからよ
自分等では使わない方針は俺は賛成
そもそもメソッドの結果なんて成功か失敗か(bool型)で足りるのに
わざわざ返す例外を1つ1つ全部呼び元で対処しなくちゃいけない仕様はおかしい
100箇所でメソッド呼んだら100箇所で同じ対処せなあかんのかと・・・?
使う側がマニュアルみて例外の対処1つ1つ・・・ってその発行した例外が出たときに
何をしなきゃいけないのか知ってるのは間違いなく例外なげた奴のほうだろ?
だったらてめぇのメソッド内でやれよ
外側からできる仕様にしてやっからよ
525仕様書無しさん
2012/04/20(金) 19:48:02.21 その場で復旧できてそこまで共通化する必要があるなら
ラッパーなりヘルパーなり作ればいいだけだろ
なにプログラム初心者でもわかってくれるレベルの事に長文書いてんのw
ラッパーなりヘルパーなり作ればいいだけだろ
なにプログラム初心者でもわかってくれるレベルの事に長文書いてんのw
526521
2012/04/21(土) 07:21:46.87 書き忘れましたが言語はC++なのでAPIが例外を投げてくることはありません。
そのできるプログラマーはちゃんと実力のある人です。ちなみに外人です。
Googleのコーディングルールでも例外禁止だし、
Effective C++の著者Scott Mayerも例外に否定的だし、著名なアメリカ人にも否定派は多いようなので、
例外はちょっとまだ受け入れられていない感じがします。
パフォーマンスの問題とか、挙動を予測できない問題とかは、言いがかりに近い誤解なんですけどねー。
いくら説明しても無駄なので、実績のある著名人の論文でもいくつか出さないと通らないっぽいです。
そのできるプログラマーはちゃんと実力のある人です。ちなみに外人です。
Googleのコーディングルールでも例外禁止だし、
Effective C++の著者Scott Mayerも例外に否定的だし、著名なアメリカ人にも否定派は多いようなので、
例外はちょっとまだ受け入れられていない感じがします。
パフォーマンスの問題とか、挙動を予測できない問題とかは、言いがかりに近い誤解なんですけどねー。
いくら説明しても無駄なので、実績のある著名人の論文でもいくつか出さないと通らないっぽいです。
527521
2012/04/21(土) 07:26:02.60 例外発生時にいちいちキャッチする必要はないでしょう。
例えばシミュレーションプログラムを実行中に0除算が起きた時、適当な値に直して継続させることはマレで、
その計算の一部分または全体をキャンセルしてしまうのが普通では。
つまりcatchはthrowに比べて大幅に少ないはず。
そこのパラダイムシフトに気づかないと例外の利点は理解できないと思う。
例えばシミュレーションプログラムを実行中に0除算が起きた時、適当な値に直して継続させることはマレで、
その計算の一部分または全体をキャンセルしてしまうのが普通では。
つまりcatchはthrowに比べて大幅に少ないはず。
そこのパラダイムシフトに気づかないと例外の利点は理解できないと思う。
528仕様書無しさん
2012/04/21(土) 07:29:52.89 キャンセルするのに例外使うんだろ
で、失敗した時の通知やログ出力にcatchを使う
return のチェーンを置き換えただけ
で、失敗した時の通知やログ出力にcatchを使う
return のチェーンを置き換えただけ
530仕様書無しさん
2012/04/21(土) 08:47:31.26 まぁたしかにC++ならあんまり例外使いたくない気も。解放し忘れとかやっちゃいそうだし。例外使わなくてもやっちゃうんだけどさw
531仕様書無しさん
2012/04/21(土) 09:42:53.05 クラスきちんと設計できてるなら例外使わないとむしろめんどいケースが多いな
何が楽しくてチェックして結果リターンして、みたいなアホなこと繰り替えさにゃならんのか、ってなるな
それを回避しようと思ったら、例外を使わない前提で
階層構造にはなるべくならないようなアホ設計をやらにゃならんくなる
そして1メソッドの行数がえらいことになるなどが多数出てくる
何が楽しくてチェックして結果リターンして、みたいなアホなこと繰り替えさにゃならんのか、ってなるな
それを回避しようと思ったら、例外を使わない前提で
階層構造にはなるべくならないようなアホ設計をやらにゃならんくなる
そして1メソッドの行数がえらいことになるなどが多数出てくる
532仕様書無しさん
2012/04/21(土) 09:47:58.39 ああそうかそういうことか
1メソッドにずらーーーーーと書くようなコーディングルール()な環境だと
例外いらないって考えが生まれるのは理解できなくもないな
1メソッドにずらーーーーーと書くようなコーディングルール()な環境だと
例外いらないって考えが生まれるのは理解できなくもないな
533仕様書無しさん
2012/04/21(土) 11:43:54.22 > 書き忘れましたが言語はC++なのでAPIが例外を投げてくることはありません。
間違いです。お前素人ですか?
> 書き忘れましたが言語はC++なのでAPIが例外を投げてくることはありません。
間違いです。お前素人ですか?
> 書き忘れましたが言語はC++なのでAPIが例外を投げてくることはありません。
間違いです。お前素人ですか?
間違いです。お前素人ですか?
> 書き忘れましたが言語はC++なのでAPIが例外を投げてくることはありません。
間違いです。お前素人ですか?
> 書き忘れましたが言語はC++なのでAPIが例外を投げてくることはありません。
間違いです。お前素人ですか?
534仕様書無しさん
2012/04/21(土) 11:44:43.06 > 書き忘れましたが言語はC++なのでAPIが例外を投げてくることはありません。
だっせwwww
> 書き忘れましたが言語はC++なのでAPIが例外を投げてくることはありません。
だっせwwww
> 書き忘れましたが言語はC++なのでAPIが例外を投げてくることはありません。
だっせwwww
だっせwwww
> 書き忘れましたが言語はC++なのでAPIが例外を投げてくることはありません。
だっせwwww
> 書き忘れましたが言語はC++なのでAPIが例外を投げてくることはありません。
だっせwwww
535仕様書無しさん
2012/04/21(土) 16:54:52.27 環境を何も書いてないから例外を投げないAPIなのかも知れんが、どんなんだろ。
あとはC++といいつつCのライブラリしか使わんとか。んなわきゃないか。
あとはC++といいつつCのライブラリしか使わんとか。んなわきゃないか。
536仕様書無しさん
2012/04/21(土) 17:00:40.89 C++といってもぷち強いCみたいなのも結構あるからな
537仕様書無しさん
2012/04/21(土) 20:52:37.56 C++のnewが例外投げるわけだが。
538仕様書無しさん
2012/04/21(土) 21:09:11.16 C++のコンパイルオプションで切り替えるのでは?
539仕様書無しさん
2012/04/21(土) 23:19:06.87 例外は基本システムエラーだけど
catchして適切に処理を施して続行する時点で業務フローに組み込まれる
catchして適切に処理を施して続行する時点で業務フローに組み込まれる
540仕様書無しさん
2012/04/21(土) 23:36:32.97 システムエラーじゃなくて
実行時エラー。
実行時にならないとわからないものが例外。
実行時エラー。
実行時にならないとわからないものが例外。
541仕様書無しさん
2012/04/22(日) 00:39:44.40 bad_alloc 受け取ったからって、アプリ側で何が出来るんだろ。
どうせプロセスごと落ちるなら後始末もへったくれもないし。
どうせプロセスごと落ちるなら後始末もへったくれもないし。
542仕様書無しさん
2012/04/22(日) 00:42:02.74 > bad_alloc 受け取ったからって、アプリ側で何が出来るんだろ。
エラーログにどこでエラーが発生したか書き込むとか。
エラーログにどこでエラーが発生したか書き込むとか。
543仕様書無しさん
2012/04/22(日) 01:06:39.56 その外人さんってリーナストパーズみたいな
C++はゲロ。低レベル開発はCこそ至上ってタイプのひとじゃないの?
例外投げると、オーバーフローとかthrowされない狭義の意味での
例外処理サボるから糞だと思ってるんじゃね。
多分暗黙の処理とかも大嫌いなんだろう。
>>541
キャッシュ用メモリの解放
応用として不要になってもbad_allocが発生するまでdeleteせず放置とか
C++はゲロ。低レベル開発はCこそ至上ってタイプのひとじゃないの?
例外投げると、オーバーフローとかthrowされない狭義の意味での
例外処理サボるから糞だと思ってるんじゃね。
多分暗黙の処理とかも大嫌いなんだろう。
>>541
キャッシュ用メモリの解放
応用として不要になってもbad_allocが発生するまでdeleteせず放置とか
544仕様書無しさん
2012/04/22(日) 01:41:01.71 もうなんにもできないくらい追い詰められてるのと
一仕事しようと大きくメモリ確保しようとしたときじゃ
違うだろ
一仕事しようと大きくメモリ確保しようとしたときじゃ
違うだろ
545仕様書無しさん
2012/04/22(日) 02:25:10.99 だよね。
例外だと一律に何も出来ないと
決めてはいけない。
例外だと一律に何も出来ないと
決めてはいけない。
546仕様書無しさん
2012/04/22(日) 05:13:36.09 >>543
個人的にだけど、C言語に極端に意識が慣れてしまうと、gcとか何かを完全に任せちゃってしまう
ようなものって逆に不安でさー。
便利だって意識より、俺の知らんところでこいつ一体なにやってんだろって気になっちゃう。
だから、頭では分かっていても使いたがらないというか。
例外も、自分でちゃんと処理書いてきっちりなにが起き得るのかを分かってて書いてしまいたい
という意識の方が強くて。普通の人ならいちいち書かないで例外任せにするようなチェックも
かいちゃうなぁ。まぁ、newとかで例外起きるとかってのは例外で拾うしかしゃーないけども。
個人的にだけど、C言語に極端に意識が慣れてしまうと、gcとか何かを完全に任せちゃってしまう
ようなものって逆に不安でさー。
便利だって意識より、俺の知らんところでこいつ一体なにやってんだろって気になっちゃう。
だから、頭では分かっていても使いたがらないというか。
例外も、自分でちゃんと処理書いてきっちりなにが起き得るのかを分かってて書いてしまいたい
という意識の方が強くて。普通の人ならいちいち書かないで例外任せにするようなチェックも
かいちゃうなぁ。まぁ、newとかで例外起きるとかってのは例外で拾うしかしゃーないけども。
547仕様書無しさん
2012/04/22(日) 05:16:33.31 あ、ごめん。
最後の一文は「catchで拾うかスルーしろ」、のミス。
最後の一文は「catchで拾うかスルーしろ」、のミス。
549仕様書無しさん
2012/04/25(水) 17:43:08.46 Javaはウンコ。
プログラマーと呼ぶべきかどうかも微妙。
プログラマーと呼ぶべきかどうかも微妙。
550仕様書無しさん
2012/04/25(水) 21:14:56.60 ほらほら、釣り釣り
554仕様書無しさん
2012/04/25(水) 21:41:10.97 こんな下らないことで
釣りとかレスの応酬とかするなよw
釣りとかレスの応酬とかするなよw
560仕様書無しさん
2012/04/25(水) 22:09:51.24 ちょwww なんで俺だけw
562仕様書無しさん
2012/04/25(水) 23:46:25.77 Javaもjavaだけど。
今のIT業界がおかしくなったのはJavaのせいじゃないのか?
プログラマーを猿にしたのはJavaのせいだよ。
正直、ホスト出身でもなれるくらいで、現場にいたんだよ。プログラマーも舐められたもんだと思った。
俺はまだC/C++,asmで食べてるけど、この分野は基礎がしっかりしてないと無理。
今のIT業界がおかしくなったのはJavaのせいじゃないのか?
プログラマーを猿にしたのはJavaのせいだよ。
正直、ホスト出身でもなれるくらいで、現場にいたんだよ。プログラマーも舐められたもんだと思った。
俺はまだC/C++,asmで食べてるけど、この分野は基礎がしっかりしてないと無理。
563仕様書無しさん
2012/04/26(木) 00:02:54.06 IT業界()
564仕様書無しさん
2012/04/26(木) 00:15:33.07 (i)
565仕様書無しさん
2012/04/26(木) 00:21:25.61 COBOL
MSBASIC
VB
Java
デスマ言語の歴史
MSBASIC
VB
Java
デスマ言語の歴史
567仕様書無しさん
2012/04/26(木) 07:59:52.15 素人でもできる、とかいう腐った台詞は40年前からある
568仕様書無しさん
2012/04/26(木) 09:12:59.52 あいちーは一気に広まって土方と同じ状態になった
例外すら理解できないような底辺マが多すぎるのは、
技術がないのに技術者枠で身売りされてるのが原因
人売ってるだけで何もしないで中間マージン取ろうとしてる企業が多すぎる
発注元がもっとスキルを持って技術を知り、直接技術者を囲う体制が不足してる
どの道、今のスタンスのままじゃ、競争力がない日本は世界的に置いてかれるのが目に見えてる
悲しい
例外すら理解できないような底辺マが多すぎるのは、
技術がないのに技術者枠で身売りされてるのが原因
人売ってるだけで何もしないで中間マージン取ろうとしてる企業が多すぎる
発注元がもっとスキルを持って技術を知り、直接技術者を囲う体制が不足してる
どの道、今のスタンスのままじゃ、競争力がない日本は世界的に置いてかれるのが目に見えてる
悲しい
569仕様書無しさん
2012/04/26(木) 10:22:10.16 士農工商からどう変転したものか、
「工」を社会の最低辺層と考える風潮が死なない限り日本の復活は無理。
そしてそれは、死ななきゃ治らない病気っぽい。
よって希望はない。とか思ってる。俺の死ぬまでは保ってほしいものだが。
「工」を社会の最低辺層と考える風潮が死なない限り日本の復活は無理。
そしてそれは、死ななきゃ治らない病気っぽい。
よって希望はない。とか思ってる。俺の死ぬまでは保ってほしいものだが。
570仕様書無しさん
2012/04/26(木) 19:07:49.33 産業革命の労働者と同じ
過酷な環境と長時間労働と搾取
おまえらが教科書に載るんやで
むねあつ
過酷な環境と長時間労働と搾取
おまえらが教科書に載るんやで
むねあつ
572uy
2012/04/30(月) 13:17:28.76 まだ例外とかやってんだ
573仕様書無しさん
2012/04/30(月) 13:26:52.96 uyか
574仕様書無しさん
2012/04/30(月) 13:29:33.46 さっさと死ねばいいのに
575仕様書無しさん
2012/04/30(月) 14:04:29.25 uyとかまだいたんだ
576uy
2012/04/30(月) 19:10:05.11 いやいやほんと
半年くらいここ見に来なかったけど、
まだ例外とかやってたんだね
オブジェクト指向に関しては、否を唱えるスレも2chに出てきたけど
例外は未だに
半年くらいここ見に来なかったけど、
まだ例外とかやってたんだね
オブジェクト指向に関しては、否を唱えるスレも2chに出てきたけど
例外は未だに
577仕様書無しさん
2012/04/30(月) 19:36:07.88 オブジェクト指向に関して否を唱えるスレを
見てきて分かったが、
オブジェクト指向がやっぱり現在一番
使える技術だよ。
例外もかな。
否を唱えている奴らが
こてんぱんにされてるのを見るとね。
見てきて分かったが、
オブジェクト指向がやっぱり現在一番
使える技術だよ。
例外もかな。
否を唱えている奴らが
こてんぱんにされてるのを見るとね。
578uy
2012/05/02(水) 01:59:26.26 OOに否を唱えてる奴らは
そのOOではない設計手法に名前がついてないんだから議論じゃ勝てないよ
っつーか君、2chのこんなそこら中が底辺PGしかいないような場所で
議論で勝った程度でその決め付けはどうかと思うがね
君の世代では例外も使い続けるだろう
たくさん書いててくれ
それが次の世代の良い失敗例の良い模範となる
人は一度間違えた道を進みはじめても、そこを行き止まりまで行かないと気がすまない生き物だからね
行き止まりまでさっさと行ってくれよ
そのOOではない設計手法に名前がついてないんだから議論じゃ勝てないよ
っつーか君、2chのこんなそこら中が底辺PGしかいないような場所で
議論で勝った程度でその決め付けはどうかと思うがね
君の世代では例外も使い続けるだろう
たくさん書いててくれ
それが次の世代の良い失敗例の良い模範となる
人は一度間違えた道を進みはじめても、そこを行き止まりまで行かないと気がすまない生き物だからね
行き止まりまでさっさと行ってくれよ
579uy
2012/05/02(水) 02:03:49.54 OOは現在一番使える技術で間違いはない
万人に使える技術を採用しなければ、会社はアプリケーションを開発できない
俺が言っているのは、「OOの次」を見始めた奴がちらほら2chでも出てきたという事だ
万人に使える技術を採用しなければ、会社はアプリケーションを開発できない
俺が言っているのは、「OOの次」を見始めた奴がちらほら2chでも出てきたという事だ
580仕様書無しさん
2012/05/02(水) 02:25:02.16 OOの次なんてものはない。
OOと共に。両方合わさっていく。
OOと共に。両方合わさっていく。
581仕様書無しさん
2012/05/02(水) 02:28:37.84 OOは使い方によってはそこそこ使えるぞ。
前もお前に言ったが、間違えた抽象化や命名が混乱させてるから糞なだけで、最強ではないけど、正しく使えばそこそこだよ。
ただし、糞コード書くやつが多い。
糞コードは一目で糞コードだと解る言語の方が、混乱は少なく済む。
考えられてるのかとおもっていろいろ調べて観察した結果クソコードだったら書いたやつ頃したくなる。
前もお前に言ったが、間違えた抽象化や命名が混乱させてるから糞なだけで、最強ではないけど、正しく使えばそこそこだよ。
ただし、糞コード書くやつが多い。
糞コードは一目で糞コードだと解る言語の方が、混乱は少なく済む。
考えられてるのかとおもっていろいろ調べて観察した結果クソコードだったら書いたやつ頃したくなる。
582仕様書無しさん
2012/05/02(水) 07:43:58.54 そもそもOOが構造化の延長だからね。
クラスやカプセル化、インターフェイス、隠蔽なんかは構造化と大きく被っている。
OO独自なのはオブジェクト間の関連に関する技術。
UMLやデザインパターンなんかだね。
継承や多態なんかもどちらかといえば構造化より関連に属する部分だろう。
例外は構造化プログラミングの範疇にあるものだと思う。
そういうわけでOOの次がくると言われて20年以上経つけど、それらしいものは未だ出てきてないので、俺が生きている限りは次はなさそうな気がする。
エージェント指向もOOの次だなんておこがましいものだったし。
クラスやカプセル化、インターフェイス、隠蔽なんかは構造化と大きく被っている。
OO独自なのはオブジェクト間の関連に関する技術。
UMLやデザインパターンなんかだね。
継承や多態なんかもどちらかといえば構造化より関連に属する部分だろう。
例外は構造化プログラミングの範疇にあるものだと思う。
そういうわけでOOの次がくると言われて20年以上経つけど、それらしいものは未だ出てきてないので、俺が生きている限りは次はなさそうな気がする。
エージェント指向もOOの次だなんておこがましいものだったし。
583仕様書無しさん
2012/05/02(水) 08:43:34.42 あんたが単に「分割して統治せよ」という大原則をわかってないだけ
586uy
2012/05/02(水) 13:49:59.01 ひとつ分かってるのは再帰で書くと
ループで書くよりも記述量が少なくなったり、
変数が消せるって事
それを常に書いていけない理由は、人がバカだからとしか言えない
いずれ遠い未来使いこなせる奴が出てくると思う
そのときにOOはプギャーwwwといわれる
ループで書くよりも記述量が少なくなったり、
変数が消せるって事
それを常に書いていけない理由は、人がバカだからとしか言えない
いずれ遠い未来使いこなせる奴が出てくると思う
そのときにOOはプギャーwwwといわれる
587仕様書無しさん
2012/05/02(水) 14:03:27.06 ああ、糞コテ用隔離スレがなくなったのか。
588仕様書無しさん
2012/05/02(水) 14:53:49.91 糞スレを立てまくったアホがいたからな。
糞スレ消化要員としてせいぜい煽っておこう。
糞スレ消化要員としてせいぜい煽っておこう。
589仕様書無しさん
2012/05/02(水) 15:43:58.15 えー、再帰なんか普通に使うだろ。
どんだけスキルの低い職場なんだよ。
どんだけスキルの低い職場なんだよ。
590仕様書無しさん
2012/05/02(水) 15:48:29.88 鉄器時代のFortranで育ったジジイが幅を利かせてた時代には結構あったのよ。
(マネージャーが理解できないから)再帰禁止とかそういうルールが。
(マネージャーが理解できないから)再帰禁止とかそういうルールが。
592仕様書無しさん
2012/05/02(水) 22:17:17.91 おまいらにはスタックオーバーフローがお似合い
593仕様書無しさん
2012/05/02(水) 22:19:35.91 なんで例外のスレでOO談義なんだ
Cに置ける構造化例外機構、C++の何でも投げられる例外機構、
Scheamの継続による例外機構、AdaなどPascal系の整数を投げる例外機構。
大半の例外機構じゃOOなんて関係ないだろ。
Cに置ける構造化例外機構、C++の何でも投げられる例外機構、
Scheamの継続による例外機構、AdaなどPascal系の整数を投げる例外機構。
大半の例外機構じゃOOなんて関係ないだろ。
594仕様書無しさん
2012/05/02(水) 22:24:17.53 uyはゲームが、ゲームがとやたら拘ってたが
そろそろまともに遊べるゲームの1つでもできたのか?
まさか、未だオセロとかそんなレベルじゃあるまいな。
そろそろまともに遊べるゲームの1つでもできたのか?
まさか、未だオセロとかそんなレベルじゃあるまいな。
595仕様書無しさん
2012/05/02(水) 23:12:16.74596仕様書無しさん
2012/05/02(水) 23:32:28.94 その阿呆に釣られてOOの話を続けてる莫迦も
さっさと首括ってくればいいのに。
さっさと首括ってくればいいのに。
597仕様書無しさん
2012/05/02(水) 23:42:14.09 マ板にはアホだろうがなんだろうが全力で相手する暇人が多いからな
他では速攻切り捨てられるから結局相手してくれるヤツが居るマ板に戻ってくるんよな
んで自爆するまで糞みたいな自説披露してしばらく沈黙
しばらくしたらヒキニートゆえに人恋しくなって(笑)またご来訪
この繰り返し
某スレに居着いてる別のレス乞食な屑コテも同様に
相手する馬鹿が居るからこの板に依存(笑)
攻撃されたらキレるが相手にされないと拗ねるのはこの子と同じ
まあそれなりに需要と供給が成立しているということなのだろう
他では速攻切り捨てられるから結局相手してくれるヤツが居るマ板に戻ってくるんよな
んで自爆するまで糞みたいな自説披露してしばらく沈黙
しばらくしたらヒキニートゆえに人恋しくなって(笑)またご来訪
この繰り返し
某スレに居着いてる別のレス乞食な屑コテも同様に
相手する馬鹿が居るからこの板に依存(笑)
攻撃されたらキレるが相手にされないと拗ねるのはこの子と同じ
まあそれなりに需要と供給が成立しているということなのだろう
598uy
2012/05/02(水) 23:49:09.04 >>595
例外が悪とかいってないよ
オブジェクト指向(笑)やっていく上では例外に頼るしかないよね
それはどういうことかというと、
そもそもオブジェクト指向が斜めに立てられた建物であって
オブジェクト指向で大きなもの作っていくとどうしても
それを支える添え木として例外が必要になってる事に気づこうか
そもそもw newで例外が発生するからプログラマがそこにコードかくとかwwwwwww
・・・OSか言語設計見直せよって話じゃん
OSや言語が斜めに立てられてるから、プログラマは例外で添え木をするしかなくなっているんだよね可愛そうにね
俺もRubyで例外は使うよ
でも静的言語で使うような例外ではなくもっとシンプルな使い方
method_missingも例外みたいなもんだしね
例外が悪とかいってないよ
オブジェクト指向(笑)やっていく上では例外に頼るしかないよね
それはどういうことかというと、
そもそもオブジェクト指向が斜めに立てられた建物であって
オブジェクト指向で大きなもの作っていくとどうしても
それを支える添え木として例外が必要になってる事に気づこうか
そもそもw newで例外が発生するからプログラマがそこにコードかくとかwwwwwww
・・・OSか言語設計見直せよって話じゃん
OSや言語が斜めに立てられてるから、プログラマは例外で添え木をするしかなくなっているんだよね可愛そうにね
俺もRubyで例外は使うよ
でも静的言語で使うような例外ではなくもっとシンプルな使い方
method_missingも例外みたいなもんだしね
599仕様書無しさん
2012/05/03(木) 00:22:52.06 trycatchのどこにOOの入る余地があるのかわからん。
600仕様書無しさん
2012/05/03(木) 02:19:29.65 Google Goや、純粋OOP型であるVisual Works、
Pharoに例外機構が無いのに何言ってんだ?
例外処理自体はするけど、Cの例外処理と
似たようなもんだし
Pharoに例外機構が無いのに何言ってんだ?
例外処理自体はするけど、Cの例外処理と
似たようなもんだし
602uy
2012/05/03(木) 03:29:55.46 プログラム関連でいえば
3つくらいは作ったかもしれん
いずれも1日で作ったものだよ
公表は出来ない類のもの
つーかプログラミングやってない
忙しい氏ね
3つくらいは作ったかもしれん
いずれも1日で作ったものだよ
公表は出来ない類のもの
つーかプログラミングやってない
忙しい氏ね
603仕様書無しさん
2012/05/03(木) 05:53:09.38 例外なくてもOOは成立するだろ
何言ってんだこの馬鹿
何言ってんだこの馬鹿
604仕様書無しさん
2012/05/03(木) 07:38:50.06 visual worksにもpharoにも例外機構はあるが…
605仕様書無しさん
2012/05/03(木) 08:10:31.97 別軸のパラダイムを混同するなよ
606仕様書無しさん
2012/05/03(木) 08:29:13.01 シェルスクリプトにも
例外相当のものがあるというのに。
例外相当のものがあるというのに。
607仕様書無しさん
2012/05/03(木) 08:32:55.72 例外の考え方としては、
エラーが発生したらデフォルトで本来の流れと違うコードに飛ぶというもの
これの利点は、想定外の事例が発生した時に
(エラーってのは大抵想定外)、そのまま処理が進むないということ。
何も書かない状態で安全な動きをするというのがメリット。
エラーが発生したらデフォルトで本来の流れと違うコードに飛ぶというもの
これの利点は、想定外の事例が発生した時に
(エラーってのは大抵想定外)、そのまま処理が進むないということ。
何も書かない状態で安全な動きをするというのがメリット。
608仕様書無しさん
2012/05/03(木) 08:55:28.23 例外は第3の選択肢であって、想定していない事象を握りつぶすことじゃないよ。
609仕様書無しさん
2012/05/03(木) 11:02:25.44 そりゃ想定してないのを握りつぶしたらダメだろw
なんでわざわざ握りつぶすんだ?
なんでわざわざ握りつぶすんだ?
611仕様書無しさん
2012/05/03(木) 13:59:24.43 ぐぐれかす
612仕様書無しさん
2012/05/03(木) 14:05:24.66613仕様書無しさん
2012/05/03(木) 14:15:20.86 なぜそんなものを作ったのか、
便利だからさ。
便利だからさ。
614uy
2012/05/03(木) 14:29:41.16 >>609
Rubyで俺は、例外使うときにそういう使い方をしてるよ
利点としては、いちいちエラーの原因探るのがめんどくさいんだけど、なんか稀にエラーが出ちゃう場合に、
とりあえず例外で飛ばして次の処理にいく
そんなかなりアバウトなプログラミングが出来る
俺はこれを最近とあるマルチスレッドプログラミングで行った
500の何かがあった場合に、その中からエラーを出さずに使えるものだけ使い
ある処理をする場合にエラーの原因を探らずにプログラミングを続行するために例外を使った
Rubyで俺は、例外使うときにそういう使い方をしてるよ
利点としては、いちいちエラーの原因探るのがめんどくさいんだけど、なんか稀にエラーが出ちゃう場合に、
とりあえず例外で飛ばして次の処理にいく
そんなかなりアバウトなプログラミングが出来る
俺はこれを最近とあるマルチスレッドプログラミングで行った
500の何かがあった場合に、その中からエラーを出さずに使えるものだけ使い
ある処理をする場合にエラーの原因を探らずにプログラミングを続行するために例外を使った
615仕様書無しさん
2012/05/03(木) 14:43:29.96 > 利点としては、いちいちエラーの原因探るのがめんどくさいんだけど
あぁ、俺も面倒くさい時は
信号無視とかやるよ。
でも今は、間違ったことをやるって話じゃないんだ。
あぁ、俺も面倒くさい時は
信号無視とかやるよ。
でも今は、間違ったことをやるって話じゃないんだ。
617仕様書無しさん
2012/05/03(木) 19:47:05.47 復旧できない例外を復旧できるところまでラップして投げたりするのは普通に当たり前のことだが、
理解できないから全部スルーすんのは間違いだろ。
バグの原因をもみ消し追跡を更に困難にする糞コードの典型じゃん。
結構長い間マ板に執着割りには、相変わらずuyは成長がないな。
昔から常に自分が優位だと思い続けるためだけに、主張コロコロ変えながら無駄レス量産続けてるだけで
プログラミングのスキルは全然身に付いてないじゃん。向いてないんじゃね。
それともチンコで釣りするのが趣味なのか?
理解できないから全部スルーすんのは間違いだろ。
バグの原因をもみ消し追跡を更に困難にする糞コードの典型じゃん。
結構長い間マ板に執着割りには、相変わらずuyは成長がないな。
昔から常に自分が優位だと思い続けるためだけに、主張コロコロ変えながら無駄レス量産続けてるだけで
プログラミングのスキルは全然身に付いてないじゃん。向いてないんじゃね。
それともチンコで釣りするのが趣味なのか?
618仕様書無しさん
2012/05/03(木) 21:41:03.73 つか、必要だからそのルート通るんでしょ?何から問題があったとして
そこをぶっ飛ばすなんて、その先まともに動くのかね?よしんば動いたと
しても、それって自分で作ったもんをコントロールできてねーんじゃ?
そこをぶっ飛ばすなんて、その先まともに動くのかね?よしんば動いたと
しても、それって自分で作ったもんをコントロールできてねーんじゃ?
619仕様書無しさん
2012/05/03(木) 22:38:17.30 まだ例外使えない奴がいるのか。
620uy
2012/05/03(木) 23:51:11.10 理解してる>>615と理解してない617,618の違いはなんだ
赤信号でもプログラムを完遂させるようなソースコードなんて
普通書く奴いないから無視していいよ
イメージとして捉えられない奴にまで説明する気もない
別にそれを例外の正しい使い方だとか言ってないしw
赤信号でもプログラムを完遂させるようなソースコードなんて
普通書く奴いないから無視していいよ
イメージとして捉えられない奴にまで説明する気もない
別にそれを例外の正しい使い方だとか言ってないしw
622uy
2012/05/04(金) 00:05:42.53 へー
ただ単純に結果だけがほしい時であれば
再現性が少ないエラーやバグを、いちいち調べないってのが本当の所
rubyだとgemで落としたらライブラリにバグもあったりするし、文字コード関連や型エラーなど
そういうものを、よく考えずにすっ飛ばしてどうにか動くようにする為に例外使うこともある
この使い方は、元々の例外の使い方じゃなくて副産物なんだろうね
けど便利に使わせてもらってるよ
ただ単純に結果だけがほしい時であれば
再現性が少ないエラーやバグを、いちいち調べないってのが本当の所
rubyだとgemで落としたらライブラリにバグもあったりするし、文字コード関連や型エラーなど
そういうものを、よく考えずにすっ飛ばしてどうにか動くようにする為に例外使うこともある
この使い方は、元々の例外の使い方じゃなくて副産物なんだろうね
けど便利に使わせてもらってるよ
623uy
2012/05/04(金) 00:07:12.08 どうせ社畜プログラミングしかやってない子にはわからないんだから、
わからないものはスルーすればいいのに
2chの全部のレスから疑問をなくさなくちゃ気がすまないのか?
uyは何を言っているんだろう、よくわからないや で終わらせればいいのに
邪魔だと思うぞ、そういうのは
わからないものはスルーすればいいのに
2chの全部のレスから疑問をなくさなくちゃ気がすまないのか?
uyは何を言っているんだろう、よくわからないや で終わらせればいいのに
邪魔だと思うぞ、そういうのは
624仕様書無しさん
2012/05/04(金) 00:11:36.10 で、お前なんのために生きてるの?
625uy
2012/05/04(金) 00:12:42.44 約束したんだ
あの日
あの日
626仕様書無しさん
2012/05/04(金) 01:20:43.63 0点
627仕様書無しさん
2012/05/04(金) 02:02:42.32 uyはコテンパンにされたコテハン
628uy
2012/05/04(金) 02:07:12.34630仕様書無しさん
2012/05/04(金) 02:19:48.47631仕様書無しさん
2012/05/04(金) 02:24:37.15 今度はここでコテンパンにすればいいのか?
632仕様書無しさん
2012/05/04(金) 02:25:22.94 糞コテは相手するだけ無駄だからスルーしとけ。
何言っても最後にレスした方が勝ちだと思ってるから、何かしら反応してくるし邪魔。無視が一番。
何言っても最後にレスした方が勝ちだと思ってるから、何かしら反応してくるし邪魔。無視が一番。
633仕様書無しさん
2012/05/04(金) 02:26:16.11 存在自体が例外みたいな屑ニートが例外扱いはダメって
自分をドロップアウト扱いするなって言ってるみたいで笑えるよね
自分をドロップアウト扱いするなって言ってるみたいで笑えるよね
634仕様書無しさん
2012/05/04(金) 02:28:47.41 throwしろって話かw
635仕様書無しさん
2012/05/04(金) 02:32:41.64636仕様書無しさん
2012/05/04(金) 02:50:35.46 スルーワラタ
そっちの意味だったのか…。
そっちの意味だったのか…。
637仕様書無しさん
2012/05/04(金) 02:53:28.45 また暴れるようなら再度過去のイタい発言集をテンプレにした隔離スレをたてるだけだな
638仕様書無しさん
2012/05/04(金) 02:56:14.38 例外が発生した時にその後の処理をすっ飛ばしたら問題だろ、
と言って例外を批判するやつは、例外を使わなくてもエラーコードをチェックして
その後の処理をキャンセルするコードをせっせと量産しているという事実を
見逃しているからフェアな比較ができてないだけ。
そしてエラー処理を入れ忘れてバグると。例外をつかったほうが逆に安全、というのは直感に反するところもあるが事実だ。
と言って例外を批判するやつは、例外を使わなくてもエラーコードをチェックして
その後の処理をキャンセルするコードをせっせと量産しているという事実を
見逃しているからフェアな比較ができてないだけ。
そしてエラー処理を入れ忘れてバグると。例外をつかったほうが逆に安全、というのは直感に反するところもあるが事実だ。
639仕様書無しさん
2012/05/04(金) 03:02:54.64 うゆは基礎学力をつけることをスルーしてきたからなぁ。
640仕様書無しさん
2012/05/04(金) 03:13:53.15 例外スレらしいオチも付いたところで、糞コテを補足して処理するのもこれくらいにしておこうか。
ここでは復旧できる見込みのない例外だし、ロギングもしたから再スローするのが正しい。
ここでは復旧できる見込みのない例外だし、ロギングもしたから再スローするのが正しい。
642仕様書無しさん
2012/05/04(金) 14:57:27.24 周回遅れに気づけない
643仕様書無しさん
2012/05/05(土) 22:54:07.49 他人にソフト公開してる訳でもないクソコテにつきあうお前らってやさしいな
そのままちゃんと隔離しといてくれよ
そのままちゃんと隔離しといてくれよ
644uy
2012/05/06(日) 01:17:42.20 思うんだけど、俺がレスをしないとスレ停止してんだけど
たのしいかこれ
たのしいかこれ
645仕様書無しさん
2012/05/06(日) 01:18:54.98 え?お前をからかうスレだろう?w
646仕様書無しさん
2012/05/06(日) 03:17:49.44 なぁに、スクリプトが止まっただけだ。
647仕様書無しさん
2012/05/06(日) 03:48:24.15 元々過疎スレでたかが1日レスが無かったぐらいで何の問題が?
648仕様書無しさん
2012/05/06(日) 03:56:58.84 診断基準(アメリカ精神医学会 DSM-IV)
『自己愛性人格障害』Narcissistic Personality Disorder
誇大性(空想または行動における)、称賛されたいという欲求、共感の 欠如の広範な様式で、
成人期早期までに始まり、種々の状況で明らかになる。以下の5つ(またはそれ以上)によって示される。
(1) 自己の重要性に関する誇大な感覚(例:業績やオ能を誇張する、
十分な業績がないにもかかわらず優れていると認められることを期待する)。
(2) 限りない成功、権力、才気、美しき、あるいは理想的な愛の空想にとらわれている。
(3) 自分が特別であり、独特であり、他の特別なまたは地位の高い人達に
(または施設で)しか理解されない、または関係があるべきだ、と信じている。
(4) 過剰な賞賛を求める。
(5) 特権意識つまり、特別有利な取り計らい、または自分の期待に自動的に従うことを理由なく期待する。
(6) 対人関係で相手を不当に利用する、つまり、自分自身の目的を達成するために他人を利用する。
(7) 共感の欠如:他人の気持ちおよび欲求を認識しようとしない、またはそれに気づこうとしない。
(8) しばしば他人に嫉妬する、または他人が自分に嫉妬していると思い込む。
『自己愛性人格障害』Narcissistic Personality Disorder
誇大性(空想または行動における)、称賛されたいという欲求、共感の 欠如の広範な様式で、
成人期早期までに始まり、種々の状況で明らかになる。以下の5つ(またはそれ以上)によって示される。
(1) 自己の重要性に関する誇大な感覚(例:業績やオ能を誇張する、
十分な業績がないにもかかわらず優れていると認められることを期待する)。
(2) 限りない成功、権力、才気、美しき、あるいは理想的な愛の空想にとらわれている。
(3) 自分が特別であり、独特であり、他の特別なまたは地位の高い人達に
(または施設で)しか理解されない、または関係があるべきだ、と信じている。
(4) 過剰な賞賛を求める。
(5) 特権意識つまり、特別有利な取り計らい、または自分の期待に自動的に従うことを理由なく期待する。
(6) 対人関係で相手を不当に利用する、つまり、自分自身の目的を達成するために他人を利用する。
(7) 共感の欠如:他人の気持ちおよび欲求を認識しようとしない、またはそれに気づこうとしない。
(8) しばしば他人に嫉妬する、または他人が自分に嫉妬していると思い込む。
649仕様書無しさん
2012/05/06(日) 10:19:33.46 >>638
>見逃しているからフェアな比較ができてないだけ。
>そしてエラー処理を入れ忘れてバグると。
処理書いてるからフェアかどうかって話ではないでしょ。
でもって例外だって例えばキャッチし切らずに抜けること
あるじゃん?でより上位の例外処理でつかんじゃって解析に
手間取ったり。
間抜けな話だがまぁそこまでいくと、どこ
までを処理の中
で想定できてるか、どこまで問題をとりのぞけるかっちゅー
話になってくるけどね。
一緒だよ。
>見逃しているからフェアな比較ができてないだけ。
>そしてエラー処理を入れ忘れてバグると。
処理書いてるからフェアかどうかって話ではないでしょ。
でもって例外だって例えばキャッチし切らずに抜けること
あるじゃん?でより上位の例外処理でつかんじゃって解析に
手間取ったり。
間抜けな話だがまぁそこまでいくと、どこ
までを処理の中
で想定できてるか、どこまで問題をとりのぞけるかっちゅー
話になってくるけどね。
一緒だよ。
650仕様書無しさん
2012/05/06(日) 12:09:05.68651uy
2012/05/07(月) 20:14:21.30 今ちょっと、
これから有名になって使われるであろうプログラミング言語のGoを見てるんだけど
http://ja.wikipedia.org/wiki/Go_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%29
>例外処理やクラスの継承、ジェネリックプログラミング、アサーション、オーバーロードといった機能が存在しない
らしいですよwwwwwwwwwwwwwwww
例外厨涙目wwwwwww
Googleのwwwwww博士級の人達がwwwwwwww例外はいらないと言ったんですねwwwwwwっうぇwwwwww
これから有名になって使われるであろうプログラミング言語のGoを見てるんだけど
http://ja.wikipedia.org/wiki/Go_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%29
>例外処理やクラスの継承、ジェネリックプログラミング、アサーション、オーバーロードといった機能が存在しない
らしいですよwwwwwwwwwwwwwwww
例外厨涙目wwwwwww
Googleのwwwwww博士級の人達がwwwwwwww例外はいらないと言ったんですねwwwwwwっうぇwwwwww
652uy
2012/05/07(月) 20:21:22.28 そりゃそうだよねーーー
いらないよねーー
このあたりはJava(笑)と違って流石Googleかなって思う
>クラスの継承
これもいらない、同意
>ジェネリックプログラミング
これもいらない、同意 メタとか動的言語でやれって話
>アサーション
は使ったこと無いな
>オーバーロード
これは静的言語ではあると便利だけど、Goの構文だとやりにくかったんだろうな
別の方法が用意されるなら良い
いらないよねーー
このあたりはJava(笑)と違って流石Googleかなって思う
>クラスの継承
これもいらない、同意
>ジェネリックプログラミング
これもいらない、同意 メタとか動的言語でやれって話
>アサーション
は使ったこと無いな
>オーバーロード
これは静的言語ではあると便利だけど、Goの構文だとやりにくかったんだろうな
別の方法が用意されるなら良い
653仕様書無しさん
2012/05/07(月) 20:26:02.78 だから誰にも相手にされず消えていったわけさ
654仕様書無しさん
2012/05/07(月) 22:43:21.16 しかし、角がなくて味気ないuyだな
655仕様書無しさん
2012/05/07(月) 22:57:55.44 >>651
悪い悪い。訂正しておいたよ。
> クラスの継承、ジェネリックプログラミング、アサーション、オーバーロードといった機能が存在しないことも特徴として挙げられる。
> try-catchはないがそれに代わる機能としてpanicとrecoverを用いた例外処理をサポートしている。[2]
> FAQにおいて、ジェネリックプログラミングは一部導入が表明されているが、オーバーロードは効率的見地から排除されたことが述べられている。
> 関数は多値を返すことができるので、それによりエラーの報告は容易である、としている。
悪い悪い。訂正しておいたよ。
> クラスの継承、ジェネリックプログラミング、アサーション、オーバーロードといった機能が存在しないことも特徴として挙げられる。
> try-catchはないがそれに代わる機能としてpanicとrecoverを用いた例外処理をサポートしている。[2]
> FAQにおいて、ジェネリックプログラミングは一部導入が表明されているが、オーバーロードは効率的見地から排除されたことが述べられている。
> 関数は多値を返すことができるので、それによりエラーの報告は容易である、としている。
656仕様書無しさん
2012/05/07(月) 23:08:34.08 英語版を参考に、もうちょっと追加したよ。
> クラスの継承、ジェネリックプログラミング、アサーション、オーバーロードといった機能が存在しないことも特徴として挙げられる。
> インターフェースを用いたポリモーフィズム(多態性)が実現されている。
> try-catchはないがそれに代わる機能としてpanicとrecoverを用いた例外処理をサポートしている。[2]
> FAQにおいて、ジェネリックプログラミングは一部導入が表明されているが、オーバーロードは効率的見地から排除されたことが述べられている。
> 関数は多値を返すことができるので、それによりエラーの報告は容易である、としている。
> クラスの継承、ジェネリックプログラミング、アサーション、オーバーロードといった機能が存在しないことも特徴として挙げられる。
> インターフェースを用いたポリモーフィズム(多態性)が実現されている。
> try-catchはないがそれに代わる機能としてpanicとrecoverを用いた例外処理をサポートしている。[2]
> FAQにおいて、ジェネリックプログラミングは一部導入が表明されているが、オーバーロードは効率的見地から排除されたことが述べられている。
> 関数は多値を返すことができるので、それによりエラーの報告は容易である、としている。
657仕様書無しさん
2012/05/07(月) 23:29:41.57 Googleの中の人のプログラミングがダメダメなのは
Android携帯のできの悪さを見ればわかる。
例外だけでなくアサーションもないということは
それだけエラー処理を軽視している証拠。
Android携帯のできの悪さを見ればわかる。
例外だけでなくアサーションもないということは
それだけエラー処理を軽視している証拠。
658仕様書無しさん
2012/05/07(月) 23:46:33.75 なんだ。Goにも例外あるんですね。
659仕様書無しさん
2012/05/07(月) 23:51:33.18 インターフェースがあってクラスの継承がないというのを見ると
VB6を思い出すね。
VB6もシェネリックもオーバーロードもないし、
あ、でもアサーションはあったな。
VB6を思い出すね。
VB6もシェネリックもオーバーロードもないし、
あ、でもアサーションはあったな。
660仕様書無しさん
2012/05/08(火) 07:15:02.18 マ板でtypoする奴がいるってのが信じられない
マ止めた方がいいね
マ止めた方がいいね
661仕様書無しさん
2012/05/08(火) 07:26:57.24 Cの代替言語で何かする気にはなれない
そういうのは組込み屋がやってろ
ScalaやれScala
そういうのは組込み屋がやってろ
ScalaやれScala
662仕様書無しさん
2012/05/08(火) 09:31:52.09 COM
663仕様書無しさん
2012/05/08(火) 11:16:10.06 Goのdefer文とpanic-recoverの仕掛けは実際良くできてるよ。
try-catchなんか実はfinally節が必要なだけな場合も多かったりするし。
とりあえずtry-catchで囲んどけ、みたいなことがないだけマシ。
try-catchなんか実はfinally節が必要なだけな場合も多かったりするし。
とりあえずtry-catchで囲んどけ、みたいなことがないだけマシ。
664uy
2012/05/08(火) 17:33:37.64 一番マシなのは「;」 末尾のこれがない事だろ
; これ消すのに半世紀かかってんじゃねーよks
; これ消すのに半世紀かかってんじゃねーよks
665仕様書無しさん
2012/05/08(火) 17:54:17.76 貴様 awk を知らずに偉そうなこと言うな
666仕様書無しさん
2012/05/08(火) 19:38:41.14 uyしっとるか
BASICは「:」打つと同じ行に次のステートメントを書ける
BASICは「:」打つと同じ行に次のステートメントを書ける
667仕様書無しさん
2012/05/08(火) 20:56:14.79 てかfortranにんなもんねーよ
668仕様書無しさん
2012/05/08(火) 21:24:05.48 >>655 どうでもいいがtry-catchだろうが、recoverだろうが例外処理って書いてるのおかしくないか?
こういうのは、あくまで例外機構であって、例外処理は人間が書くものじゃね。
こういうのは、あくまで例外機構であって、例外処理は人間が書くものじゃね。
670仕様書無しさん
2012/05/09(水) 05:48:48.74 コードはよく出してるよなuyは。他人に見せられるかどうかは…
671仕様書無しさん
2012/05/10(木) 10:12:16.63 すぐ例外と関係ないことに流れて自分の主張すら忘れる程度の知能しか持ち合わせてない
レスするほど価値があるか考えてから相手しろよ
レスするほど価値があるか考えてから相手しろよ
672仕様書無しさん
2012/05/10(木) 11:39:52.99 知能程度が近いんだろ。
673仕様書無しさん
2012/05/10(木) 13:27:28.50 uyだしな
触る奴もアレ
触る奴もアレ
674仕様書無しさん
2012/05/11(金) 11:01:27.49 この会話の流れの脱線具合がいかにも例外っぽい。
675仕様書無しさん
2012/05/12(土) 02:09:43.52 こんどはここでボコボコにされてたのかw
676仕様書無しさん
2012/05/12(土) 13:04:27.70 C++だと、例外はファクトリメソッド内以外ではcatchしない
オブジェクト生成時に発生した例外だけはエラー戻り値に置き換える
それ以外の場所で発生した例外はアプリ殺した方がマシ
無意味なcatchをあちこちに配置する必要なし
オブジェクト生成時に発生した例外だけはエラー戻り値に置き換える
それ以外の場所で発生した例外はアプリ殺した方がマシ
無意味なcatchをあちこちに配置する必要なし
677仕様書無しさん
2012/05/12(土) 13:15:28.79 > オブジェクト生成時に発生した例外だけはエラー戻り値に置き換える
え? newの戻り値が、エラーになるの?
ありえんわぁw
え? newの戻り値が、エラーになるの?
ありえんわぁw
678仕様書無しさん
2012/05/12(土) 14:32:22.59 つか、C++の例外は途中でCがはさまったりすっとややこしいからなぁ。
679仕様書無しさん
2012/05/12(土) 15:49:42.59680仕様書無しさん
2012/05/12(土) 16:31:29.64 というかRAIIというベストプラクティスが一般的になる前に、「C言語禁じ手」っていう
べからず集の人気が出た勢いで書いちゃった、ろくにこなれてないC++べからず集に
書いてあったのが、その都市伝説化の発端なんだよな。
べからず集の人気が出た勢いで書いちゃった、ろくにこなれてないC++べからず集に
書いてあったのが、その都市伝説化の発端なんだよな。
681仕様書無しさん
2012/05/13(日) 15:05:50.71 あと、どこでcatchするかは処理次第だから、
catchするだけでNGというようなミスリードを招きそうな書き方はちょっと違う気がするな
アプリケーションとして続行可能だが、メソッドとしては例外、なんてのはいっぱいあるし
その処理で復旧可能であればその場でcatchすべきだし、
常に復旧できる処理であれば、例外復旧までを含めた処理作ってラップしてあげればいい
たまに湧く、例外に文句言ってる人は、こういったラップした処理しか作った/使ったことないから、
例外を吐く必要はないって思いこんでるんだと思うわ
catchするだけでNGというようなミスリードを招きそうな書き方はちょっと違う気がするな
アプリケーションとして続行可能だが、メソッドとしては例外、なんてのはいっぱいあるし
その処理で復旧可能であればその場でcatchすべきだし、
常に復旧できる処理であれば、例外復旧までを含めた処理作ってラップしてあげればいい
たまに湧く、例外に文句言ってる人は、こういったラップした処理しか作った/使ったことないから、
例外を吐く必要はないって思いこんでるんだと思うわ
682仕様書無しさん
2012/05/13(日) 15:17:35.55 ラップされてるんならいいんだけど、ラップもせずに例外上げてくるのがむかつく。
684仕様書無しさん
2012/05/13(日) 15:46:02.37 異常系考慮しないマほど例外を嫌うイメージ
なんか例外出たってことには気づくけど、その内容が理解できない奴も多い
なんか例外出たってことには気づくけど、その内容が理解できない奴も多い
685仕様書無しさん
2012/05/13(日) 16:05:00.27 そもそも、知る必要ないものばかり投げてくるじゃん。
そういうダサすぎなプロジェクトばかりで嫌になる。
そういうダサすぎなプロジェクトばかりで嫌になる。
686仕様書無しさん
2012/05/13(日) 16:09:36.02 確かに知識がないことを棚に上げて文句言ったりする奴が多いな
687仕様書無しさん
2012/05/13(日) 18:33:13.18688仕様書無しさん
2012/05/13(日) 21:14:17.65 例外クラス(値?)をどうデザインするか迷う。
構造がまったく同じで型情報のためだけに
クラスボコボコ作るのも面倒くさいしなぁ。
throw LexError<class Lexer::InvalidSymbol>( 色々 );
とりあえず、識別用の型をテンプレート引数に渡して
それで区別するってのが楽では有るけど、結局同じ型が
生成されてるのがなんかねぇ。
構造がまったく同じで型情報のためだけに
クラスボコボコ作るのも面倒くさいしなぁ。
throw LexError<class Lexer::InvalidSymbol>( 色々 );
とりあえず、識別用の型をテンプレート引数に渡して
それで区別するってのが楽では有るけど、結局同じ型が
生成されてるのがなんかねぇ。
689仕様書無しさん
2012/05/13(日) 22:00:21.37 JavaでWeb系なら、基本的にはRuntimeException継承した業務レベルのエラー1つだけにしておくかなぁ
システムエラー的なので、RuntimeExceptionじゃない奴は
共通処理で行うように設計して、理解してる奴に担当してもらい、RuntimeExceptionでラップして投げるようにする
とにかく馬鹿にはなるべく意識させないようにしておくのが理想
システムエラー的なので、RuntimeExceptionじゃない奴は
共通処理で行うように設計して、理解してる奴に担当してもらい、RuntimeExceptionでラップして投げるようにする
とにかく馬鹿にはなるべく意識させないようにしておくのが理想
690仕様書無しさん
2012/05/13(日) 22:11:18.47 >>688
同じ意味合いのある例外ならそういう集約の仕方はありだと思う
型が同じだと違和感があるような例外であるなら、元になる例外を継承して複数のクラスにする、とかでもいいと思う
普通にクラスを作るときと同じ感じで設計するのがいいんじゃね
同じオブジェクトとして扱うべきものかどうか、が判断条件
個人的には、クラスファイルが増えること自体は、全然面倒だとは思わない
同じ意味合いのある例外ならそういう集約の仕方はありだと思う
型が同じだと違和感があるような例外であるなら、元になる例外を継承して複数のクラスにする、とかでもいいと思う
普通にクラスを作るときと同じ感じで設計するのがいいんじゃね
同じオブジェクトとして扱うべきものかどうか、が判断条件
個人的には、クラスファイルが増えること自体は、全然面倒だとは思わない
691仕様書無しさん
2012/05/13(日) 23:13:24.09 中身に文字列しか持って無いようなのが困るんだよね。
いっそハードtypedefがありゃいいのにと思うぐらい煩わしい
class CantOpenFileError:
public std::runtime_error
{
CantOpenFileError( const char message[]):
std::runtime_error( message ){}
};
class NotExistFileError:
public std::runtime_error
{
NotExistFileError( const char message[]):
std::runtime_error( message ){}
};
いっそハードtypedefがありゃいいのにと思うぐらい煩わしい
class CantOpenFileError:
public std::runtime_error
{
CantOpenFileError( const char message[]):
std::runtime_error( message ){}
};
class NotExistFileError:
public std::runtime_error
{
NotExistFileError( const char message[]):
std::runtime_error( message ){}
};
692仕様書無しさん
2012/05/14(月) 09:40:21.01 try{}
catch(...){}
何でもかんでも全てこれ。
再研修受けるか、現場から去ってくれ。
catch(...){}
何でもかんでも全てこれ。
再研修受けるか、現場から去ってくれ。
693仕様書無しさん
2012/05/14(月) 12:36:35.32 まず、お前がそういう研修を
されたかどうか考えてみ?
されたかどうか考えてみ?
694仕様書無しさん
2012/05/15(火) 12:33:26.44 転職して来た奴なんだが…。
695仕様書無しさん
2012/05/15(火) 22:02:56.72 Cにおいて例外ってどうやって捕まえるんですか?
696仕様書無しさん
2012/05/15(火) 22:04:43.51 signal
697仕様書無しさん
2012/05/16(水) 20:32:50.63 戻り値 + errno
698uy
2012/05/28(月) 01:16:16.47 え、
そういえばC++からCのライブラリ使うときに例外ってどうすんですか
書き直しですか
そういえばC++からCのライブラリ使うときに例外ってどうすんですか
書き直しですか
699仕様書無しさん
2012/05/28(月) 03:22:25.64 はぁ?
700仕様書無しさん
2012/05/29(火) 01:41:01.08 え、
そういえばRubyからCのライブラリ使うときどうすんですか
書き直しですか
そういえばRubyからCのライブラリ使うときどうすんですか
書き直しですか
701仕様書無しさん
2012/05/29(火) 14:46:23.29 え、
そういえばCからアセンブラのライブラリ使うときにスタックってどうすんですか
書き直しですか
そういえばCからアセンブラのライブラリ使うときにスタックってどうすんですか
書き直しですか
702仕様書無しさん
2012/05/29(火) 22:41:03.64 アセンブラーのライブラリは、アセンブラーのライブラリだから多少面倒だろうな。
アセンブリで書いたライブラリならオブジェクトコードにしてリンクすりゃ済むが。
アセンブリで書いたライブラリならオブジェクトコードにしてリンクすりゃ済むが。
703仕様書無しさん
2012/05/29(火) 22:45:33.43 DLLを使用してるアセンブラーなんて多く無いだろうから
大概スタティックリンクでアセンブラーの実行ファイルに
組み込まれてるだろうな
アセンブラーの実行ファイル内に入ってるライブラリを
取り出すのは骨が折れるぞ
大概スタティックリンクでアセンブラーの実行ファイルに
組み込まれてるだろうな
アセンブラーの実行ファイル内に入ってるライブラリを
取り出すのは骨が折れるぞ
704仕様書無しさん
2012/07/21(土) 11:07:03.83 先日またやられたわ…
public String getHoge() throws Exception {
try {
:(全処理が一メソッド内にかかれてるせいでとてもスパゲッティ)
} catch (Exception e) {
e.printStackTrace();
return null
}
}
こういうコード書きまくってる馬鹿がわいてひどい目にあった
底辺なおかげでソースレビューの習慣がないせいで、馬鹿が紛れ込んでしまうとマジ悲惨
そういう馬鹿に限って、コミット殆どしないようにために溜めたゴミクラスを
数十個一括でコミットして、実装の不都合を隠しやがるし、その実装でも例外もみ消して隠しやてやがる
だいたいこれじゃ絶対例外飛ばないし、throws節の意味もわかってねーだろ!
public String getHoge() throws Exception {
try {
:(全処理が一メソッド内にかかれてるせいでとてもスパゲッティ)
} catch (Exception e) {
e.printStackTrace();
return null
}
}
こういうコード書きまくってる馬鹿がわいてひどい目にあった
底辺なおかげでソースレビューの習慣がないせいで、馬鹿が紛れ込んでしまうとマジ悲惨
そういう馬鹿に限って、コミット殆どしないようにために溜めたゴミクラスを
数十個一括でコミットして、実装の不都合を隠しやがるし、その実装でも例外もみ消して隠しやてやがる
だいたいこれじゃ絶対例外飛ばないし、throws節の意味もわかってねーだろ!
706仕様書無しさん
2012/07/21(土) 16:11:09.19 底辺会社には底辺社員が揃うってことか
707仕様書無しさん
2012/08/19(日) 15:51:13.90708仕様書無しさん
2012/08/19(日) 20:42:18.21 日本語読めない方は書き込まないで欲しいもんだね
709仕様書無しさん
2012/09/29(土) 02:14:43.71 >だいたいこれじゃ絶対例外飛ばないし
ワロアww
throws new Spoon();
ワロアww
throws new Spoon();
710仕様書無しさん
2012/09/30(日) 17:16:48.78 関係ないがthrowsにException書くのは、俺はありだな。
throws
Exception,
SAXException
みたいな感じで、例外を投げる箇所には具体的な例外クラス名と一緒に
Exceptionも書いておく。新しい例外を追加する際に非常に楽だ。
throws
Exception,
SAXException
みたいな感じで、例外を投げる箇所には具体的な例外クラス名と一緒に
Exceptionも書いておく。新しい例外を追加する際に非常に楽だ。
711仕様書無しさん
2012/09/30(日) 18:51:20.41 やめろ馬鹿www
712仕様書無しさん
2012/09/30(日) 22:24:31.22 なぜ?
713仕様書無しさん
2012/10/01(月) 13:27:09.67 検査例外である必要が全くない
714仕様書無しさん
2012/10/01(月) 23:19:52.25 例外検査に必要なのは投げる可能性が有るか無いかだけ。
個別の型検査は、オーバーライドが有る以上邪魔なだけだ。
http://www.ibm.com/developerworks/jp/java/library/j-jtp05254/
C++でも例外に対し警告を出せるthrowの元になった仕組みがあったが結局使われず
投げない事をしらせる意味しか無くなった。挙句は、それせんようの構文までできた。
挙句.net環境においては採用されず、後続の言語にも採用するものは居ない。
個別の型検査は、オーバーライドが有る以上邪魔なだけだ。
http://www.ibm.com/developerworks/jp/java/library/j-jtp05254/
C++でも例外に対し警告を出せるthrowの元になった仕組みがあったが結局使われず
投げない事をしらせる意味しか無くなった。挙句は、それせんようの構文までできた。
挙句.net環境においては採用されず、後続の言語にも採用するものは居ない。
715仕様書無しさん
2012/10/02(火) 00:41:12.88 そういうのは実行時例外で事足りるだろう
意識させるための検査例外なんだから全部にExceptionとかアホの極み
ないわ
まあこの意識させる例外ってのは検査例外のダメな部分でもあるけれど
きちんと最初から例外も設計されてる環境なら、それが問題になることはそうない
意識させるための検査例外なんだから全部にExceptionとかアホの極み
ないわ
まあこの意識させる例外ってのは検査例外のダメな部分でもあるけれど
きちんと最初から例外も設計されてる環境なら、それが問題になることはそうない
716仕様書無しさん
2012/10/02(火) 01:12:57.02 もうみんな匙を投げちまってるんだから今更言っても遅い。
Exceptionとまでは行かないまでも、SAXException、SQLExceptionと
ライブラリーベンダーは単一型でthrows定義して、必要に応じてcatch
細かい例外に別けろなスタイルを取ってる。まぁ、アレは失敗だよ。
throwsに細々派生型書くなんてスパープログラマーさんだけがやってりゃいい。
Exceptionとまでは行かないまでも、SAXException、SQLExceptionと
ライブラリーベンダーは単一型でthrows定義して、必要に応じてcatch
細かい例外に別けろなスタイルを取ってる。まぁ、アレは失敗だよ。
throwsに細々派生型書くなんてスパープログラマーさんだけがやってりゃいい。
717仕様書無しさん
2012/10/02(火) 02:10:18.58 検査例外自体、上まで投げ返すような使い方するもんじゃないしな。
なるだけ発生した直近で処理するのがベストでしょ。
んで、多発するようなのを個別に処理するのは面倒だし、
そもそも、知識ない人に例外意識させてもろくなことにならないから、
検査例外に対しては、共通の処理作ってはRuntimeExceptionの派生でラップするようにするしかないと思う。
そう考えると、無駄だなって気がするのもなんかわかるかな。
まぁ、ライブラリ導入して、ドキュメントとか見なくても、ラップしとかないといけない例外とかがコードだけですぐわかるのは利点でもあるけどね。
ともあれ、とにかくアホにはなるだけ例外を見せちゃいけない。
あいつら検査例外でビルドこけると、おまじないのようにthrowsExceptionとかcatch(Exception)とか書くし。
アホを除外できれば一番なんだろうけど、なかなかそうも行かないしな。
なるだけ発生した直近で処理するのがベストでしょ。
んで、多発するようなのを個別に処理するのは面倒だし、
そもそも、知識ない人に例外意識させてもろくなことにならないから、
検査例外に対しては、共通の処理作ってはRuntimeExceptionの派生でラップするようにするしかないと思う。
そう考えると、無駄だなって気がするのもなんかわかるかな。
まぁ、ライブラリ導入して、ドキュメントとか見なくても、ラップしとかないといけない例外とかがコードだけですぐわかるのは利点でもあるけどね。
ともあれ、とにかくアホにはなるだけ例外を見せちゃいけない。
あいつら検査例外でビルドこけると、おまじないのようにthrowsExceptionとかcatch(Exception)とか書くし。
アホを除外できれば一番なんだろうけど、なかなかそうも行かないしな。
718仕様書無しさん
2012/10/02(火) 06:24:53.29 ないわー、まじないわー。
catchないしthrowsを強制させるExceptionで通常のthrowsをまとめるならまだしも、
実行時の整合性エラー(RuntimeException)で代用するとかまじないわー。
ExceptionならIOExceptionとかなげる事もできるしcatchのチェックも維持できるけど、
RuntimeExceptionならチェックなくなって元も子もねぇじゃん。
catchないしthrowsを強制させるExceptionで通常のthrowsをまとめるならまだしも、
実行時の整合性エラー(RuntimeException)で代用するとかまじないわー。
ExceptionならIOExceptionとかなげる事もできるしcatchのチェックも維持できるけど、
RuntimeExceptionならチェックなくなって元も子もねぇじゃん。
719仕様書無しさん
2012/10/02(火) 06:33:10.74 >>715
理想論はいいとして、throwsへの派生型記述にこだわると何が嬉しいの?
開発経験ながけりゃ派生型の固有の情報が欲しい時なんて必要に応じてぐらいで
毎回必要とされる機会なんて殆ど無いはずだが。
理想論はいいとして、throwsへの派生型記述にこだわると何が嬉しいの?
開発経験ながけりゃ派生型の固有の情報が欲しい時なんて必要に応じてぐらいで
毎回必要とされる機会なんて殆ど無いはずだが。
720仕様書無しさん
2012/10/02(火) 06:43:27.14 開発経験の長い人で派生クラスだけをthrowsに書けって人は、
オーバーライド先で系統の違う例外が発生したらどうしてるの?
IOExceptionしかthrowsに書いてない場所でSQLExceptionが発生したら?
オーバーライド先で系統の違う例外が発生したらどうしてるの?
IOExceptionしかthrowsに書いてない場所でSQLExceptionが発生したら?
721仕様書無しさん
2012/10/02(火) 21:22:26.87 全部のメソッドにthrows Exception書いてるプロジェクトは色々死んでた記憶しかないな
722仕様書無しさん
2012/10/02(火) 21:29:31.62 珍しくスレ伸びてるね。
throwsにExceptionって書くのはチェック例外自体無駄な記述としてしか利用してないってことだから、
そもそもチェック例外のある言語を使ってる意味はないかな。
安いゴミグラマ簡単にかき集めれるって意味でJavaを使うメリットは十分あるけどね。
throwsにExceptionって書くのはチェック例外自体無駄な記述としてしか利用してないってことだから、
そもそもチェック例外のある言語を使ってる意味はないかな。
安いゴミグラマ簡単にかき集めれるって意味でJavaを使うメリットは十分あるけどね。
723仕様書無しさん
2012/10/03(水) 00:19:37.40725仕様書無しさん
2012/10/03(水) 00:48:12.99 無効な値を返す、または、オブジェクトが無効になる可能性がある→例外処理必須
値を返す場合は必ず有効な値を返し、必ずオブジェクトは無効にならない→例外処理不要
例外の委細は解らずとも、throwの有無が解ることには価値があるわな。
値を返す場合は必ず有効な値を返し、必ずオブジェクトは無効にならない→例外処理不要
例外の委細は解らずとも、throwの有無が解ることには価値があるわな。
726仕様書無しさん
2012/10/03(水) 04:31:03.76 RuntimeExceptionを祖先にもつ例外だってthrowsに書けるし、javadocにも書けるから、意識できないわけじゃないよ。
実行時例外と検査例外の差は補足の有無をコンパイラがチェックするかの違いだけ。
処理済みでかつ一部の共通処理以外では補足の必要がない状態になった例外までコンパイラーに検出させる必要ない。
なので実行時例外へ纏めてしまう、って手法は、汎用的なフレームワークとかでも使われてるよ。
むしろ後から例外が増えた場合に影響ないように、なんて理由で、親のタイプでthrows節に書くのは、
Exception型でcatchしたりすることが増える要因を作ったり、多数のメソッドに検査例外のthrows節が必須になったりして、
無用な補足を多数繰り返すようになったりしてNG。間違いを招きやすいので、これはやっちゃいけない。
そんなことをやってしまうと、とたんに検査例外の意味がなくなってしまう。
プライベートメソッドでthrowsで例外を伝播させていくとかであれば、一クラス内で収まるし大きな問題にはならないけど、
protected や public メソッドでそれをやるのは、やっぱよくない例外設計だよ。
そういうのが蔓延してしまうと、不必要な補足をされてしまった場合に、機械的に検出するのが難しくなる。
チェック例外のビルドエラーを発生させないように記述する方法はいくらでもあるからね。
一部の共通の例外処理を除いて、catch(Exception e) のようなコードに記述させないルールのほうが、
徹底しやすく機械的な発見もしやすいから、意図しない例外処理が発生する要因を減らせる。
このあたりの使い分けに方ついては、別に最近出た話題でもないので、情報は結構あるよ。
ttp://www.google.co.jp/search?q=%E5%AE%9F%E8%A1%8C%E6%99%82%E4%BE%8B%E5%A4%96
実行時例外と検査例外の差は補足の有無をコンパイラがチェックするかの違いだけ。
処理済みでかつ一部の共通処理以外では補足の必要がない状態になった例外までコンパイラーに検出させる必要ない。
なので実行時例外へ纏めてしまう、って手法は、汎用的なフレームワークとかでも使われてるよ。
むしろ後から例外が増えた場合に影響ないように、なんて理由で、親のタイプでthrows節に書くのは、
Exception型でcatchしたりすることが増える要因を作ったり、多数のメソッドに検査例外のthrows節が必須になったりして、
無用な補足を多数繰り返すようになったりしてNG。間違いを招きやすいので、これはやっちゃいけない。
そんなことをやってしまうと、とたんに検査例外の意味がなくなってしまう。
プライベートメソッドでthrowsで例外を伝播させていくとかであれば、一クラス内で収まるし大きな問題にはならないけど、
protected や public メソッドでそれをやるのは、やっぱよくない例外設計だよ。
そういうのが蔓延してしまうと、不必要な補足をされてしまった場合に、機械的に検出するのが難しくなる。
チェック例外のビルドエラーを発生させないように記述する方法はいくらでもあるからね。
一部の共通の例外処理を除いて、catch(Exception e) のようなコードに記述させないルールのほうが、
徹底しやすく機械的な発見もしやすいから、意図しない例外処理が発生する要因を減らせる。
このあたりの使い分けに方ついては、別に最近出た話題でもないので、情報は結構あるよ。
ttp://www.google.co.jp/search?q=%E5%AE%9F%E8%A1%8C%E6%99%82%E4%BE%8B%E5%A4%96
727仕様書無しさん
2012/10/03(水) 05:08:08.14 >>721
それは、実装ではなく設計の問題じゃないかな?
継承をすることでメソッドの役割や機能が変わってしまってるので、祖先のメソッドが限定的過ぎたか、
子孫のメソッドが異なる役割を持ったメソッドになってる、ってことが本当の問題だと思う。
事前に集約されたタイプでの throws に"しておく"のは、
そういう問題が起きたとき、場当たり対応しやすいようにするためのアンチパターンでしかないよ。
もちろん、集約したタイプでの throws 節を書くな、という意味ではないよ。
>>724
検査例外は、例外が発生するしないを伝えるためのものではなくて、
その例外の補足の必要があるかどうかを、必ずコーダーに判断させることを強いるためにだけ、使うべきだと思うよ。
なので、アプリケーション全体で、処理済みであったり補足の必要がないのがわかりきっている例外まで、
検査例外でビルドが通らないようにしてしまうのは、検査例外である意味をなくしてしまってる。
そして「ビルドを通すようにする」という本来の目的ではない理由で、
例外の補足か伝播をハードコーディングする必要が出てきてしまう。
例えば、ぬるぽやIlligalArgument、UnsupportedOperationなんかが実行時例外になってるのも、同じような理由。
これらが発生するのは、基本的にコーディングのミスによるものなので、普通は補足しちゃいけない。
補足してガッするのではなく、発生しないようにコーディングで回避すべきことだしね。
同様に、処理すべき場所が明確に定まっているような例外であれば、関係のない場所で勝手に処理されてしまうのはバグ。
しかし、関係のない例外処理が随所に入るような例外設計になっていると、それを機械的に見つけるのが難しいくなってしまう。
検査例外がない言語であれば、例外処理をしている箇所を抽出すれば勝手な処理を発見できるけど、
先に書いたような、ビルドを通すためだけの例外処理が随所に出てきてしまうようになっていると、抽出が難しくなっちゃう。
だから検査例外が無駄になってるって話だと思う。
それは、実装ではなく設計の問題じゃないかな?
継承をすることでメソッドの役割や機能が変わってしまってるので、祖先のメソッドが限定的過ぎたか、
子孫のメソッドが異なる役割を持ったメソッドになってる、ってことが本当の問題だと思う。
事前に集約されたタイプでの throws に"しておく"のは、
そういう問題が起きたとき、場当たり対応しやすいようにするためのアンチパターンでしかないよ。
もちろん、集約したタイプでの throws 節を書くな、という意味ではないよ。
>>724
検査例外は、例外が発生するしないを伝えるためのものではなくて、
その例外の補足の必要があるかどうかを、必ずコーダーに判断させることを強いるためにだけ、使うべきだと思うよ。
なので、アプリケーション全体で、処理済みであったり補足の必要がないのがわかりきっている例外まで、
検査例外でビルドが通らないようにしてしまうのは、検査例外である意味をなくしてしまってる。
そして「ビルドを通すようにする」という本来の目的ではない理由で、
例外の補足か伝播をハードコーディングする必要が出てきてしまう。
例えば、ぬるぽやIlligalArgument、UnsupportedOperationなんかが実行時例外になってるのも、同じような理由。
これらが発生するのは、基本的にコーディングのミスによるものなので、普通は補足しちゃいけない。
補足してガッするのではなく、発生しないようにコーディングで回避すべきことだしね。
同様に、処理すべき場所が明確に定まっているような例外であれば、関係のない場所で勝手に処理されてしまうのはバグ。
しかし、関係のない例外処理が随所に入るような例外設計になっていると、それを機械的に見つけるのが難しいくなってしまう。
検査例外がない言語であれば、例外処理をしている箇所を抽出すれば勝手な処理を発見できるけど、
先に書いたような、ビルドを通すためだけの例外処理が随所に出てきてしまうようになっていると、抽出が難しくなっちゃう。
だから検査例外が無駄になってるって話だと思う。
728仕様書無しさん
2012/10/03(水) 05:20:42.20 あ、呼びもとの例外処理を意識した例外のスローが云々は勿論理解しているよ。
ライブラリのような再利用が前提のモノに関して、実行時例外で纏めるのはどうか、
みたいな話、一々言わなくてもわかるよう事なので端折ってます。
実行時例外で集約云々のくだりは、
同一のアプリケーション内でお互いを全く意識しない前提な実装にするのは、
再利用性は高まるだろうし、こうあるべきって姿なのかもしれないけど、
そのアプリケーション以外でも活用するものでない限り、ただの無駄になる、という考えです。
それに、実行時例外でのラップを前提とした例外処理まで含めた
フレームワークとして再利用するのであれば、再利用も出来ないわけじゃないしね。
ライブラリのような再利用が前提のモノに関して、実行時例外で纏めるのはどうか、
みたいな話、一々言わなくてもわかるよう事なので端折ってます。
実行時例外で集約云々のくだりは、
同一のアプリケーション内でお互いを全く意識しない前提な実装にするのは、
再利用性は高まるだろうし、こうあるべきって姿なのかもしれないけど、
そのアプリケーション以外でも活用するものでない限り、ただの無駄になる、という考えです。
それに、実行時例外でのラップを前提とした例外処理まで含めた
フレームワークとして再利用するのであれば、再利用も出来ないわけじゃないしね。
729仕様書無しさん
2012/10/03(水) 07:32:48.86 >>726
RuntimeExceptionを代わりにつかうのはアンチパターンだよ。
普通バグかランタイムシステムの異常だからね。
>なので実行時例外へ纏めてしまう、って手法は、汎用的なフレームワークとかでも使われてるよ
実際のクラスドキュメントへのリンクを貼ってくれるかい
>>727
理想論はいいんだけどさ、具体的にどいう風なコードでどういう問題が発生するか書いてよ。
Exceptionでthrows指定した時点で理想は捨てて実利をとりに言ってる訳だから。
>なので、アプリケーション全体で、処理済みであったり補足の必要がないのがわかりきっている例外まで、
>検査例外でビルドが通らないようにしてしまうのは、検査例外である意味をなくしてしまってる。
>そして「ビルドを通すようにする」という本来の目的ではない理由で、
>例外の補足か伝播をハードコーディングする必要が出てきてしまう。
例えば、実際にはこういう問題は起きないでしょ。
RuntimeExceptionを代わりにつかうのはアンチパターンだよ。
普通バグかランタイムシステムの異常だからね。
>なので実行時例外へ纏めてしまう、って手法は、汎用的なフレームワークとかでも使われてるよ
実際のクラスドキュメントへのリンクを貼ってくれるかい
>>727
理想論はいいんだけどさ、具体的にどいう風なコードでどういう問題が発生するか書いてよ。
Exceptionでthrows指定した時点で理想は捨てて実利をとりに言ってる訳だから。
>なので、アプリケーション全体で、処理済みであったり補足の必要がないのがわかりきっている例外まで、
>検査例外でビルドが通らないようにしてしまうのは、検査例外である意味をなくしてしまってる。
>そして「ビルドを通すようにする」という本来の目的ではない理由で、
>例外の補足か伝播をハードコーディングする必要が出てきてしまう。
例えば、実際にはこういう問題は起きないでしょ。
730仕様書無しさん
2012/10/03(水) 23:10:22.56 throwsにException型を書くのはその問題の典型じゃねw
めちゃくちゃ見かけるわ
あれ、このシステムではチェック例外を一切利用しないという宣言だろ
めちゃくちゃ見かけるわ
あれ、このシステムではチェック例外を一切利用しないという宣言だろ
731仕様書無しさん
2012/10/04(木) 00:19:01.49 try{・・・・}
catch( RuntimeException exception ){ throw exception; }
catch( XxxxxxxException exception ){ /* Xxxxxxx固有例外処理 */ }
catch( Exception exception ){ /* 一般例外処理 */ }
これだけの事だろうに、なんで>>730みたいな話になるんだ?
単に教育が悪いだけじゃないか?
catch( RuntimeException exception ){ throw exception; }
catch( XxxxxxxException exception ){ /* Xxxxxxx固有例外処理 */ }
catch( Exception exception ){ /* 一般例外処理 */ }
これだけの事だろうに、なんで>>730みたいな話になるんだ?
単に教育が悪いだけじゃないか?
732仕様書無しさん
2012/10/04(木) 00:55:41.47 RTEキャッチして再スローとか随所に書く必要があるとかアホだなー
733仕様書無しさん
2012/10/04(木) 01:10:51.42 RuntimeExceptionにねじ込んでcatchできなるくなる事に比べたらその程度の手間は気にならないよ
734仕様書無しさん
2012/10/04(木) 01:16:23.73 斜めにしか読んでないけど、例外処理は絶対にこうしないといけないっていう厳密な縛りはないから、
用途やメンバーに合わせて、開発のチーム内で徹底できるルールを敷くことが大事であって
使い方は便利で問題が出なければ、ある程度柔軟に利用するのがいいと思う
道具は道具、アンチパターンにもメリットデメリットは存在するし、変に拘って視野を狭めないほうがいい
ただ、void hoge() throws Exception {} って書くと、それを呼び出す多くのメソッド全部が
throws Exception を書くハメになるから、普通は専用の例外を用意してそれでラップすると思う
Exception型を多用するのはデメリットのほうが多いし、Exception型使用禁止のプロジェクトとかもあるっちゃある
用途やメンバーに合わせて、開発のチーム内で徹底できるルールを敷くことが大事であって
使い方は便利で問題が出なければ、ある程度柔軟に利用するのがいいと思う
道具は道具、アンチパターンにもメリットデメリットは存在するし、変に拘って視野を狭めないほうがいい
ただ、void hoge() throws Exception {} って書くと、それを呼び出す多くのメソッド全部が
throws Exception を書くハメになるから、普通は専用の例外を用意してそれでラップすると思う
Exception型を多用するのはデメリットのほうが多いし、Exception型使用禁止のプロジェクトとかもあるっちゃある
735仕様書無しさん
2012/10/04(木) 01:19:53.00 小さいプロジェクトなら追っかけりゃ大体わかるしあんまり気にならないけど
大きいプロジェクトで無駄な検査例外あちこちにあるとハゲるからやめろ!
javadocみればわかるかと思ったら、
* @throws Exception 例外
こんなんかかれてたりしてマジハゲる!髪返してほしいわ…
大きいプロジェクトで無駄な検査例外あちこちにあるとハゲるからやめろ!
javadocみればわかるかと思ったら、
* @throws Exception 例外
こんなんかかれてたりしてマジハゲる!髪返してほしいわ…
736仕様書無しさん
2012/10/04(木) 01:39:15.24 Exceptionをthrowsに入れるのはRuntimeExceptionで投げるのと変わらないって人は、
↓のような例外の要、不要なメソッドを分けられる事についてどう思ってるの?
RuntimeExceptionでも同じ事ができるの?
// finalで例外を出さない( コンストラクターでも同じ )
example.thomethingA();
--------------------------------------------------
try
{
// finalではなくオーバーライドされてる可能性がある
// また、throws Exception,・・・で宣言されいる
example.thomethingB();
}
catch( RuntimeException exception ){ throw exception; }
catch( Exception exception ){ /* 一般例外処理 */ }
>>735
人間的な問題は現場の教育次第だし不毛だから置いとこうよ
↓のような例外の要、不要なメソッドを分けられる事についてどう思ってるの?
RuntimeExceptionでも同じ事ができるの?
// finalで例外を出さない( コンストラクターでも同じ )
example.thomethingA();
--------------------------------------------------
try
{
// finalではなくオーバーライドされてる可能性がある
// また、throws Exception,・・・で宣言されいる
example.thomethingB();
}
catch( RuntimeException exception ){ throw exception; }
catch( Exception exception ){ /* 一般例外処理 */ }
>>735
人間的な問題は現場の教育次第だし不毛だから置いとこうよ
737仕様書無しさん
2012/10/04(木) 01:40:58.56 ハゲに不毛とか酷いなお前w
738仕様書無しさん
2012/10/04(木) 01:55:37.97739仕様書無しさん
2012/10/04(木) 02:05:44.71 べ、べつに毛がないわけじゃないぞ…!
>>736
実行時例外ラップの話って、そもそもExcepton型でのキャッチや実行時例外のキャッチはさせない設計が前提の話じゃね
その場で捕まえないといけない例外はそもそも処理してまとめてから投げるか、
適切に復旧してもみ消して外に投げないから、派生クラスで限定的に書いても問題ないのでは?
色々ごっちゃになってね
>>736
実行時例外ラップの話って、そもそもExcepton型でのキャッチや実行時例外のキャッチはさせない設計が前提の話じゃね
その場で捕まえないといけない例外はそもそも処理してまとめてから投げるか、
適切に復旧してもみ消して外に投げないから、派生クラスで限定的に書いても問題ないのでは?
色々ごっちゃになってね
740仕様書無しさん
2012/10/04(木) 02:08:05.27 >>735
細かく書けるなら書くに越したことはないけど、
オーバーライドで変わる場合はコメントに何を期待するの?
この辺は結局、インターフェースを実装する側に合わせるんじゃなくて、
使う側の都合でコメント書くしか無いんだろうな。
「この@throwsに書いてある例外がなげられる」じゃなく
「この@throwsに書いてある例外は呼び出し側の処理に使用される」ってな感じ?
細かく書けるなら書くに越したことはないけど、
オーバーライドで変わる場合はコメントに何を期待するの?
この辺は結局、インターフェースを実装する側に合わせるんじゃなくて、
使う側の都合でコメント書くしか無いんだろうな。
「この@throwsに書いてある例外がなげられる」じゃなく
「この@throwsに書いてある例外は呼び出し側の処理に使用される」ってな感じ?
741仕様書無しさん
2012/10/04(木) 02:10:34.33 つかなんかこう視点が違うな
全体の設計的な話してる奴と個々のクラスの実装担当者みたいな視点で話してる奴とじゃ噛み合うわけない罠
あとは想定してるアプリケーションも違いそう
Strutsとかつかってやるようなウェブアプリケーションと、その場で復旧して処理を続行するような落ちないシステム、みたいな
なんにせよ>>734、プロジェクト内でちゃんと統一が取れててハゲの原因を生まなきゃ何でもいいさ
全体の設計的な話してる奴と個々のクラスの実装担当者みたいな視点で話してる奴とじゃ噛み合うわけない罠
あとは想定してるアプリケーションも違いそう
Strutsとかつかってやるようなウェブアプリケーションと、その場で復旧して処理を続行するような落ちないシステム、みたいな
なんにせよ>>734、プロジェクト内でちゃんと統一が取れててハゲの原因を生まなきゃ何でもいいさ
742仕様書無しさん
2012/10/04(木) 02:21:24.45 >>740
javadoc勉強しなおしな
@throws には型とその例外がスローされる原因なり条件なりを書くもんだ
インターフェイス仕様のドキュメントなんだから、何をしたら発生するかっていう仕様を書くだけ
まぁjavadocちゃんと書けてる奴って、実際あんま居ないけどな…
あとオーバーライドしたらインターフェイス仕様変わるとか、そのクラス設計のほうに問題あんだろ
javadoc勉強しなおしな
@throws には型とその例外がスローされる原因なり条件なりを書くもんだ
インターフェイス仕様のドキュメントなんだから、何をしたら発生するかっていう仕様を書くだけ
まぁjavadocちゃんと書けてる奴って、実際あんま居ないけどな…
あとオーバーライドしたらインターフェイス仕様変わるとか、そのクラス設計のほうに問題あんだろ
743仕様書無しさん
2012/10/04(木) 02:23:50.03 try {
:
} catch (Exception e) {
e.printStackTrace();
}
:
} catch (Exception e) {
e.printStackTrace();
}
746仕様書無しさん
2012/10/04(木) 02:43:04.47 >>739 例えば、こういう処理にそのRuntimeExceptionの設計思想を入れるとどうなるの?
@Override
public final PaintContext getPaintContext()
{
if( null != context ) return context;
try
{
PaintContextPrototype prototype = environmentDependentContextFactory.createPaintContextPrototype();
・・・略・・・
context = prototype.createPaintContext();
}
catch( RuntimeException exception ){ throw exception; }
catch( XxxxxxxException exception ){ /* Xxxxxxx固有例外処理 */ }
catch( Exception exception )
{
context = createSafeIndependentContext();
・・・略・・・
}
return context;
}
@Override
public final PaintContext getPaintContext()
{
if( null != context ) return context;
try
{
PaintContextPrototype prototype = environmentDependentContextFactory.createPaintContextPrototype();
・・・略・・・
context = prototype.createPaintContext();
}
catch( RuntimeException exception ){ throw exception; }
catch( XxxxxxxException exception ){ /* Xxxxxxx固有例外処理 */ }
catch( Exception exception )
{
context = createSafeIndependentContext();
・・・略・・・
}
return context;
}
747仕様書無しさん
2012/10/04(木) 21:17:29.36 {}の位置とか()内のスペースとかなんか気持ち悪い
748仕様書無しさん
2012/10/04(木) 23:50:41.95 うむ、括弧のスタイルは統一してくれ
聞かれてないけど俺は括弧は括弧だけの行にする({}のこと)
聞かれてないけど俺は括弧は括弧だけの行にする({}のこと)
749仕様書無しさん
2012/10/05(金) 00:26:47.90 こういうへんなコード書くおっさんがうちの職場にもいるけど例に漏れず例外も正しく使えてないな。
頭固いのか共通のフォーマッター使うように言われてるのに頑なに拒み続けてて最近空気が悪いw。
頭固いのか共通のフォーマッター使うように言われてるのに頑なに拒み続けてて最近空気が悪いw。
750仕様書無しさん
2012/10/05(金) 01:55:20.89 あと、人のソースに手を入れる時に、はじめに作った人とは明らかに異なるスタイルで追加する人いるよな
あれ、マジでみにくいからやめて欲しいとおもう
あれ、マジでみにくいからやめて欲しいとおもう
751仕様書無しさん
2012/10/05(金) 02:31:58.71 とはいえあまりにヘンな俺様ルールには従ってられないじゃん
たとえば746みたいな本人はこーゆーのが読みやすいと思って派手にオナニーしてるヤツね
おそらくはブロック内処理が2行以上なら改行して…みたいな一応決まったマイルールがあるんだろうけど
そのルールを推測する時間がもったいないじゃん?
触る前にフォーマッタかけちまうよ(ウチは使用を強制されてはいない)
たとえば746みたいな本人はこーゆーのが読みやすいと思って派手にオナニーしてるヤツね
おそらくはブロック内処理が2行以上なら改行して…みたいな一応決まったマイルールがあるんだろうけど
そのルールを推測する時間がもったいないじゃん?
触る前にフォーマッタかけちまうよ(ウチは使用を強制されてはいない)
752仕様書無しさん
2012/10/05(金) 02:37:33.81 まともな意見もだせず関係ない話で叩こうとする
嗚呼これがパソコン大先生の遠吠えというやつか
嗚呼これがパソコン大先生の遠吠えというやつか
754仕様書無しさん
2012/10/05(金) 03:11:27.93 どうでもいいことに反論するのもアレですが、
一応癪に障るので言っておきます。{ throw exception; }こういう書き方したのは
単に書き込み行数を減らすためです。()のスペースとインデントに合わせた
ブロックの配置は割と一般的な方法でしょ。職場でもC系ならどの言語でも
使える点と、言語に依存しないフォーマッターならどれでも対応してる点、
誰が書いてもブレにくい点から規約になってたりします。
一応癪に障るので言っておきます。{ throw exception; }こういう書き方したのは
単に書き込み行数を減らすためです。()のスペースとインデントに合わせた
ブロックの配置は割と一般的な方法でしょ。職場でもC系ならどの言語でも
使える点と、言語に依存しないフォーマッターならどれでも対応してる点、
誰が書いてもブレにくい点から規約になってたりします。
755仕様書無しさん
2012/10/05(金) 09:17:03.22 反論するってことはどーでもよくはないんだよ
ここまでの流れみてて、細かい事例出して例外云々語ってんだなみんな、って印象
プログラム三原則とかに照らし合わせて作りゃいいんじゃないの?
ここまでの流れみてて、細かい事例出して例外云々語ってんだなみんな、って印象
プログラム三原則とかに照らし合わせて作りゃいいんじゃないの?
756仕様書無しさん
2012/10/05(金) 12:10:34.02757仕様書無しさん
2012/10/05(金) 18:05:32.18 この程度で読みにくいとかイライラするようなプログラマはいらねーな。
レベル低い
レベル低い
758仕様書無しさん
2012/10/05(金) 19:50:11.99 これは確かにイラっとするなぁw
762仕様書無しさん
2012/10/12(金) 13:27:33.21 >>746
>>754
>{ throw exception; }こういう書き方したのは 単に書き込み行数を減らすためです。
javaは知らんが、C#の場合
http://d.hatena.ne.jp/aoki1210/20091007/p1
↑
みたいな話がある。
>>754
>{ throw exception; }こういう書き方したのは 単に書き込み行数を減らすためです。
javaは知らんが、C#の場合
http://d.hatena.ne.jp/aoki1210/20091007/p1
↑
みたいな話がある。
763仕様書無しさん
2012/10/13(土) 02:24:21.17 こういう勝手をやるのがMSのダメなとこ
catchの中にtry〜catch書かれたときに
throw;なんてされたらさっぱりわからん
catchの中にtry〜catch書かれたときに
throw;なんてされたらさっぱりわからん
766仕様書無しさん
2012/10/14(日) 00:43:46.79767仕様書無しさん
2012/10/14(日) 00:53:52.55 理解してないことが問題だと思う人は、理解せず使えるものを使えば良い。
車に乗るといっても理解を必要とするF1に乗る必要もタンクに乗る必要も
パワーショベルに乗る必要もない。一生一般車だけ運転してれば良い。
車に乗るといっても理解を必要とするF1に乗る必要もタンクに乗る必要も
パワーショベルに乗る必要もない。一生一般車だけ運転してれば良い。
768仕様書無しさん
2012/10/14(日) 14:49:49.57 Vistaの不満もOffice2007の不満も、どっちも理解力がないゆえにの部分が大半だけどな
言いたいことはわからんでもないがたとえが悪いだろ
なんにせよ変化に対応できない奴はマには向いてない
言いたいことはわからんでもないがたとえが悪いだろ
なんにせよ変化に対応できない奴はマには向いてない
769仕様書無しさん
2012/10/14(日) 17:22:20.61 道具を理解しないで許されるのは素人だけだろ
請け負った仕事をしくじって使った道具を
理解出来なくてじゃ許されんだろ
請け負った仕事をしくじって使った道具を
理解出来なくてじゃ許されんだろ
770仕様書無しさん
2012/10/14(日) 17:42:01.42771仕様書無しさん
2012/10/14(日) 17:48:39.62 理解にかける時間が妥当かどうか判断してからどちらにするか決める
772仕様書無しさん
2012/10/14(日) 18:03:37.75 そら、PC使ってるからCPUの仕組みを理解しろとか、半導体物理理解しろって言われたら、理解しなくてもいいだろうけど
マやってて例外理解しろって言われたら、(言われてる時点で恥だが)、理解するしかねーだろよ
マやってて例外理解しろって言われたら、(言われてる時点で恥だが)、理解するしかねーだろよ
773仕様書無しさん
2012/10/14(日) 20:51:38.72 ローカル変数を理解しなかった連中の末路を知らないのだろう
775仕様書無しさん
2012/10/15(月) 11:51:34.90776仕様書無しさん
2012/10/15(月) 20:48:44.32 もう弄るのは許してやってくれ
スレチ引っ張りすぎ
スレチ引っ張りすぎ
777仕様書無しさん
2012/10/15(月) 22:13:42.90 C# ほとんんど知らなかったから勉強にはなった
778仕様書無しさん
2012/10/16(火) 23:10:25.19 2chMate使うとよくぬるぽが出るのをどうにかしてほしい
779仕様書無しさん
2013/01/09(水) 23:20:22.34 http://toro.2ch.net/test/read.cgi/tech/1346919580/549-554
例外を正しく使えないプログラマ
例外を正しく使えないプログラマ
780仕様書無しさん
2013/01/10(木) 16:04:58.72 話題の発端は、ここで語るような内容でもないから要らない誘導だろ
誘導元スレのほうでスルーしときゃいい
誘導元スレのほうでスルーしときゃいい
781仕様書無しさん
2013/07/28(日) NY:AN:NY.AN 多いね。とても多い。
まともに使える人がいなさすぎて、ユーティリティとかでthrows書いたら
catch(Exception e) とか書き出す馬鹿出たりするし、
基本的に共通の実行時例外にラップしたりして使えないマに例外を触らせないようにしてるわ
まともに使える人がいなさすぎて、ユーティリティとかでthrows書いたら
catch(Exception e) とか書き出す馬鹿出たりするし、
基本的に共通の実行時例外にラップしたりして使えないマに例外を触らせないようにしてるわ
782仕様書無しさん
2013/08/18(日) NY:AN:NY.AN Javaの検査例外は最近使わない事のほうが増えてきたな
馬鹿にはthrowsかかせないcatchさせないの、すごく重要だと思う
うまく使えば便利だけど、全員の知識がある程度の水準に達してる前提だから
うんコーダー混じった時点でその前提が崩壊する
で結局意識させない書かせないが最適だと思えてくる
馬鹿にはthrowsかかせないcatchさせないの、すごく重要だと思う
うまく使えば便利だけど、全員の知識がある程度の水準に達してる前提だから
うんコーダー混じった時点でその前提が崩壊する
で結局意識させない書かせないが最適だと思えてくる
783仕様書無しさん
2013/08/26(月) NY:AN:NY.AN 使えないのが例外だけなら良いんだけどな。
784仕様書無しさん
2013/08/27(火) NY:AN:NY.AN お行儀の良い使い方ではないけれど、処理抜けを行うgotoとして例外をつかったフレームワーク、
なかなかキてる感あって、嫌いではないなって思った。
本来の意味での正しい使い方ではないと思うけど、
如何にして楽に作るかを突き詰めていけば、こういうのはありかなと思う。
なかなかキてる感あって、嫌いではないなって思った。
本来の意味での正しい使い方ではないと思うけど、
如何にして楽に作るかを突き詰めていけば、こういうのはありかなと思う。
786仕様書無しさん
2013/08/28(水) NY:AN:NY.AN 構造化じゃ書けないとか言いながらswitch文使うとか、意味不明
787仕様書無しさん
2013/08/28(水) NY:AN:NY.AN cだとswitchのcaseブロックはbreakしなければ下のcaseに流れ落ちることができる
c#などではこれは構造化の観点から禁止されている
c#などではこれは構造化の観点から禁止されている
788仕様書無しさん
2013/08/28(水) NY:AN:NY.AN 「構造化の観点から」じゃなくて、しばしばバグの原因になってるから、という理由。
Go言語は、fallthrough文を書けばfallthroughする。
Go言語は、fallthrough文を書けばfallthroughする。
789仕様書無しさん
2013/08/28(水) NY:AN:NY.AN C#のswitchではfallthroughの代わりに、
goto caseをサポートしている。
fallthroughが次のcaseにしか移動できないのと違って
goto caseは任意のcaseに移動できる。
goto caseをサポートしている。
fallthroughが次のcaseにしか移動できないのと違って
goto caseは任意のcaseに移動できる。
790仕様書無しさん
2013/08/29(木) NY:AN:NY.AN 例外じゃないけど、goto case、便利だよな
あんまり見通しよいコードになるわけじゃないから多用するものではないけど
あんまり見通しよいコードになるわけじゃないから多用するものではないけど
791仕様書無しさん
2013/08/29(木) NY:AN:NY.AN フォールスルーを構造化の観点から禁止するなら、
そんな機能を追加するはずがないよなw
そんな機能を追加するはずがないよなw
792仕様書無しさん
2013/08/31(土) NY:AN:NY.AN UMLで例外を一生懸命書いてるバカが居たな。
言いたいことは分かるが実装をモデリングすんなよ。
言いたいことは分かるが実装をモデリングすんなよ。
793仕様書無しさん
2013/09/03(火) 01:44:40.37 なんのためのモデリングツールか理解出来ないうちはあんまり役に立たないね
改めてオブジェクト指向が何なのか、MVC、ドメインモデルってどんなのか
みたいなのを勉強しなおしてやっと見えてきたかなーって気がしてきた
改めてオブジェクト指向が何なのか、MVC、ドメインモデルってどんなのか
みたいなのを勉強しなおしてやっと見えてきたかなーって気がしてきた
794仕様書無しさん
2013/09/07(土) 10:30:00.81 例外処理は急ぎの仕事の時に助かるぐらいのつもりで使ってる。
そして、だんだんメンテナンスムリーなコードが出来上がる。
そして、だんだんメンテナンスムリーなコードが出来上がる。
795仕様書無しさん
2013/09/07(土) 12:21:57.48 例外処理って昔の言語にはなかった
比較的新しい機能なんだぞ?
なんで新しい機能ができたかといえば便利だからだ。
なんで便利なものを使ってメンテンナンス無理なコードになるんだ?
それはお前の各コードが悪い。例外処理ではなく、
単にお前の技術力が低いってことでしかないんだよ。
例外使ったらエラー処理がめちゃくりゃ楽になるんだがねぇ。
比較的新しい機能なんだぞ?
なんで新しい機能ができたかといえば便利だからだ。
なんで便利なものを使ってメンテンナンス無理なコードになるんだ?
それはお前の各コードが悪い。例外処理ではなく、
単にお前の技術力が低いってことでしかないんだよ。
例外使ったらエラー処理がめちゃくりゃ楽になるんだがねぇ。
796仕様書無しさん
2013/09/07(土) 12:50:47.37 例外で重要なのは例外そのものではなくてその後のfinallyブロックだと思うw
797仕様書無しさん
2013/09/07(土) 12:53:29.04 もう例外なしじゃ生きてけない
いちいち戻値のチェックするとか、原住民の生活って感じ
いちいち戻値のチェックするとか、原住民の生活って感じ
798仕様書無しさん
2013/09/07(土) 12:59:33.21 >>796
finallyなんて大した機能じゃねーよ。
例外で重要なのは、関数コールスタックを
(途中でキャッチしない限り)
自動的にさかのぼるという機能。
finallyはガベージコレクションなどの
スコープ抜けたら自動的に後始末してくれる機能が
あれば殆ど使わない。
finallyなんて大した機能じゃねーよ。
例外で重要なのは、関数コールスタックを
(途中でキャッチしない限り)
自動的にさかのぼるという機能。
finallyはガベージコレクションなどの
スコープ抜けたら自動的に後始末してくれる機能が
あれば殆ど使わない。
799仕様書無しさん
2013/09/07(土) 14:26:13.24 GCは「スコープ抜けたら自動的に後始末してくれる機能」じゃないし
800仕様書無しさん
2013/09/07(土) 14:29:09.51 > ガベージコレクションなどの
など
など
など
など
などが見えない?
など
など
など
など
などが見えない?
801仕様書無しさん
2013/09/07(土) 14:29:50.18 >>799
http://ja.wikipedia.org/wiki/%E3%82%AC%E3%83%99%E3%83%BC%E3%82%B8%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3
ガベージコレクション(garbage collection; GC)とは、
プログラムが動的に確保したメモリ領域のうち、
不要になった領域を自動的に解放する機能である。
http://ja.wikipedia.org/wiki/%E3%82%AC%E3%83%99%E3%83%BC%E3%82%B8%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3
ガベージコレクション(garbage collection; GC)とは、
プログラムが動的に確保したメモリ領域のうち、
不要になった領域を自動的に解放する機能である。
802仕様書無しさん
2013/09/07(土) 14:31:49.43 後始末が不要な言語、
不要にできる言語だと、
finallyは殆ど使わないよね。
不要にできる言語だと、
finallyは殆ど使わないよね。
803仕様書無しさん
2013/09/07(土) 14:36:12.31 斜め上すぎてどう突っ込んだらいいのかさえわからないレベル
805仕様書無しさん
2013/09/07(土) 19:08:12.94 オマエの脳内の皆とかどうでもいいいから…
806仕様書無しさん
2013/09/07(土) 19:14:55.96 突っ込みたいけど突っ込めない悔しい。
は否定しないんだなw
は否定しないんだなw
807仕様書無しさん
2013/09/08(日) 11:36:36.99 >>800
スマートポインタを指して「ガベージコレクトなど」と言うのは、
イギリスを指して「フランスなど」というようなものだぞ。
で、それを指摘されたら「ヨーロッパを知らないのプゲラw」って言うようなw
スマートポインタを指して「ガベージコレクトなど」と言うのは、
イギリスを指して「フランスなど」というようなものだぞ。
で、それを指摘されたら「ヨーロッパを知らないのプゲラw」って言うようなw
808仕様書無しさん
2013/09/08(日) 15:15:58.23 どこにもスマートポインタの話なんか
でてきてませんが?
でてきてませんが?
809仕様書無しさん
2013/09/11(水) 00:15:01.61 突っ込みたいとかなんとか、卑猥な話題してんな…
Javaでいうなら7以降のAutoClosableはとても便利になったな
やっとusingっぽい事ができる様になった。これでうんこなfinallyのtry/catchみたいなのともバイバイできる
まぁ、仕事でjava7以降が使える日はまだ遠そうな職場だから恩恵ないんだけどな…(´・ω・`)
---
例外は機能制限されたgotoだから、うまいこと使えない奴がいるとおかしな事になるってイメージだなー
あと、ポリモーフィズムとかそういうのすら知らないような人が基板部分関わると、例外設計がかなり糞い事になってメンテ死
Javaでいうなら7以降のAutoClosableはとても便利になったな
やっとusingっぽい事ができる様になった。これでうんこなfinallyのtry/catchみたいなのともバイバイできる
まぁ、仕事でjava7以降が使える日はまだ遠そうな職場だから恩恵ないんだけどな…(´・ω・`)
---
例外は機能制限されたgotoだから、うまいこと使えない奴がいるとおかしな事になるってイメージだなー
あと、ポリモーフィズムとかそういうのすら知らないような人が基板部分関わると、例外設計がかなり糞い事になってメンテ死
810仕様書無しさん
2013/09/11(水) 00:19:05.14 例外キャッチして数値フラグや文字列フラグで返す処理を量産する馬鹿がいたり
クラスを上ってくるたびに例外捕まえまくってログだけ吐いて投げ直す処理を書いてたりとか、
そういう失敗例も未だにちょいちょい見かける
クラスを上ってくるたびに例外捕まえまくってログだけ吐いて投げ直す処理を書いてたりとか、
そういう失敗例も未だにちょいちょい見かける
811仕様書無しさん
2013/09/14(土) 17:48:39.39 例外を使えるプログラマは例外的
812仕様書無しさん
2013/09/17(火) 09:44:07.68 ライブラリがせっかく理想的な例外を出すのにそれを俺様流でぶっ潰すのがうまい奴が大杉
813仕様書無しさん
2014/03/02(日) 10:03:31.97 >>1
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
http://toro.2ch.net/test/read.cgi/tech/1393660194/90
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
http://toro.2ch.net/test/read.cgi/tech/1393660194/90
814仕様書無しさん
2014/04/05(土) 19:58:57.02 例外なんて例外なんだから無視するぜ!!
815仕様書無しさん
2014/04/06(日) 14:05:45.57 少なくともハード屋の書いたソースでコードレビューは通らない
816仕様書無しさん
2014/05/15(木) 01:39:58.96 正しい使い方って誰が決めたの?
817仕様書無しさん
2014/05/15(木) 03:25:33.27 例外を考えた人たち
818仕様書無しさん
2014/06/04(水) 02:41:53.33 例外面倒くさすぎね?
始めのうちはそうでもないけど、時間がたつにしたがって例外部分が膨大に膨れ上がって可読性オワタになるの多すぎなんだが
あとから一部だけ変えようとしても、それがcatchの途中にあったらまた例外から書き直しになるし後ろの別のcatchまで書き直しになるケースも多いし
でかくなってくると自分のコードでも結構きついのに、他人の書いた例外とかほんと無理
もっと短く書ける機能ないのか
始めのうちはそうでもないけど、時間がたつにしたがって例外部分が膨大に膨れ上がって可読性オワタになるの多すぎなんだが
あとから一部だけ変えようとしても、それがcatchの途中にあったらまた例外から書き直しになるし後ろの別のcatchまで書き直しになるケースも多いし
でかくなってくると自分のコードでも結構きついのに、他人の書いた例外とかほんと無理
もっと短く書ける機能ないのか
820仕様書無しさん
2015/04/17(金) 22:09:45.31 例外をcatchしようという発想が間違いの根元やね
821仕様書無しさん
2015/04/20(月) 01:31:11.13 戻り値によるエラー値のif文判断の脱却が例外catch
でも失敗に終わりそうだね
そもそもオブジェクト指向プログラミングが間違いなんかな?
でも失敗に終わりそうだね
そもそもオブジェクト指向プログラミングが間違いなんかな?
822仕様書無しさん
2015/10/12(月) 10:43:57.56 受ける会社大丈夫?
下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in Tokyo
・「社名 労基」でググると過去(5年以上前)の2chスレが出てくる
・転職会議で2.5点
下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in Tokyo
・「社名 労基」でググると過去(5年以上前)の2chスレが出てくる
・転職会議で2.5点
823仕様書無しさん
2015/10/13(火) 06:49:27.51 javaでは
} catch (Exception e) {
e.printStackTrace();
}
こんなのサンプルばかり
catchしたら握りつぶせと暗黙的に教えられてるんだから
} catch (Exception e) {
e.printStackTrace();
}
こんなのサンプルばかり
catchしたら握りつぶせと暗黙的に教えられてるんだから
824仕様書無しさん
2015/10/13(火) 06:51:19.30 性的解析ツール使って、commitさせないように、commitされてもすぐに検知するようにするしかないね
825仕様書無しさん
2015/10/14(水) 03:12:10.85 【 オンラインTCGエディター 】 >>1
デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。
例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
バトスピ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、ガンダム・ウォー、ライブオン、ディメンション・ゼロ、カードヒーローなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書いて。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストして。
WEB通信での対戦は、個vs個、多数乱戦、チームvsチーム、個vsチームを可能な仕様とする方針。
設計思想は 《 RPGツクール 》 が良いかな? 他に、優れたエディター有ったら挙げてみて。
個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。
↓
エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。
↓
遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
なるべく前述3つで可能な再現は全て実装させる方向を目指す。 まぁ努力する・・・
バトスピ、ヴァンガ、バディ、デュエマなど発売済みゲームソフトが存在してるケースはベンダーに研究させる。
↓
各社TCGを再現するテストプレイ ⇒ 更に改良や修正。
↓
機能制限した下位版を5万円以上で発売 + デュエリ−グ用に改造した上位版でサーバー稼動=営業開始。
↑
下位版の改造および商用利用には、別途で当社との契約が必要。
さ〜て、製作ベンダー見つけよっと!ww(クス
http://wc2014.2ch.net/test/read.cgi/entrance2/1444545761/-20
デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。
例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
バトスピ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、ガンダム・ウォー、ライブオン、ディメンション・ゼロ、カードヒーローなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書いて。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストして。
WEB通信での対戦は、個vs個、多数乱戦、チームvsチーム、個vsチームを可能な仕様とする方針。
設計思想は 《 RPGツクール 》 が良いかな? 他に、優れたエディター有ったら挙げてみて。
個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。
↓
エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。
↓
遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
なるべく前述3つで可能な再現は全て実装させる方向を目指す。 まぁ努力する・・・
バトスピ、ヴァンガ、バディ、デュエマなど発売済みゲームソフトが存在してるケースはベンダーに研究させる。
↓
各社TCGを再現するテストプレイ ⇒ 更に改良や修正。
↓
機能制限した下位版を5万円以上で発売 + デュエリ−グ用に改造した上位版でサーバー稼動=営業開始。
↑
下位版の改造および商用利用には、別途で当社との契約が必要。
さ〜て、製作ベンダー見つけよっと!ww(クス
http://wc2014.2ch.net/test/read.cgi/entrance2/1444545761/-20
826仕様書無しさん
2016/02/11(木) 20:46:06.70 age
827仕様書無しさん
2016/02/13(土) 01:31:37.47 ヘボプログラマは例外クラスを定義することに怯えすぎw
システムで扱う業務例外は多岐に渡るのだから、それを表す多数の例外クラスも必要になるはずなのに、
ありものの例外クラスでなんとかまかなおうとしてまかないきれてない馬鹿ばかりw
システムで扱う業務例外は多岐に渡るのだから、それを表す多数の例外クラスも必要になるはずなのに、
ありものの例外クラスでなんとかまかなおうとしてまかないきれてない馬鹿ばかりw
828仕様書無しさん
2016/02/16(火) 21:33:44.81 >>827
JavaやC#前提で話すけどさ、
不特定多数から利用される、コアなライブラリなら、
独自例外クラスを定義し、それを投げる方がいいと思う
一方、アプリに一番近い層では、独自例外クラスの手法だと、
作成クラス数が多すぎてプログラムが煩雑になりがち
メッセージの国際化もやりずらい
例外クラスは、なるべく数を抑えて(2〜4くらい)、エラー番号を埋め込んだ方がいい
って思ったりする
JavaやC#前提で話すけどさ、
不特定多数から利用される、コアなライブラリなら、
独自例外クラスを定義し、それを投げる方がいいと思う
一方、アプリに一番近い層では、独自例外クラスの手法だと、
作成クラス数が多すぎてプログラムが煩雑になりがち
メッセージの国際化もやりずらい
例外クラスは、なるべく数を抑えて(2〜4くらい)、エラー番号を埋め込んだ方がいい
って思ったりする
829仕様書無しさん
2016/02/21(日) 11:51:52.24 独自例外なんていらなくね?
特にc#だと、チェック有例外が作れないから、例外処理がくそ面倒そう
特にc#だと、チェック有例外が作れないから、例外処理がくそ面倒そう
831仕様書無しさん
2016/02/23(火) 08:19:38.81 検査例外ないC#で独自例外作るとか三流だな
833仕様書無しさん
2016/02/24(水) 01:17:31.30 システムエラーは例外、ビジネスエラーはエラーコードだな。色々考えると、それが正解。
ライブラリがビジネスエラーを投げる仕様なら、呼び出し直後にキャッチしてエラーコード置き換え。
ライブラリがビジネスエラーを投げる仕様なら、呼び出し直後にキャッチしてエラーコード置き換え。
835仕様書無しさん
2016/03/13(日) 08:05:58.22 残業SEは大迷惑!
時間外労働違反となる
契約に作業期限はない
契約の延長がなくなる
健康障害をもたらす
対人障害をもたらす
能力評価が低下する
生産評価が低下する
時間報酬が低下する
学習時間が減少する
副業時間が減少する
訴訟が増加する
失業が増加する
貧困が増加する
独身が増加する
早死が増加する
時間外労働違反となる
契約に作業期限はない
契約の延長がなくなる
健康障害をもたらす
対人障害をもたらす
能力評価が低下する
生産評価が低下する
時間報酬が低下する
学習時間が減少する
副業時間が減少する
訴訟が増加する
失業が増加する
貧困が増加する
独身が増加する
早死が増加する
836仕様書無しさん
2016/03/13(日) 18:04:31.96 FJネクスト迷惑電話のスレが荒れています
838仕様書無しさん
2016/05/04(水) 15:10:14.27 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrent(Covenant)が活発な情報交換・交流コミュニティでオープンソース開発されています(プログラマー募集中)
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise氏)がそういう人と話したいそうなので、よろしければツイートお願いします<(_ _)>
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできない情報発信好きアスペルガーw
通話料が激安になるブラステル(050 Free)で、かなり遅延や音声途切れが発生する方は、以下の設定を試してください
○ Wifiと3Gのコーデックは2つ(GSM、G.711u-Law)とも有効にしておく
○ エコーキャンセルをOFF(チェックを外す)にする
○ あとの設定はデフォルトのまま
http://blog.livedoor.jp/gnunobian/archives/52013458.html
上記の設定でも音質が悪い方は、wolfsonの高音質チップを搭載した機種(Galaxy 初代S、S3、S6、 AQUOSPhone ZETA SH-06E、AQUOSPhone si SH-07E、AQUOSPhone Xx 206SH、 Galaxy Note II)に買い換えて下さい。
500円以下の格安SIMで使えて登録・月額無料、IPベース発信なら携帯へは5.5円/30秒、固定へは8円/3分(月額無料でこの価格はすごい!)
http://blog.jikoman.jp/2015/11/brastel-050-free.html
あと、050Freeの起動もしくは発着信が2週間以上ないとプッシュサーバー期限切れでプッシュ着信が出来なくなるので、Llama Location Profilesで1週間に一度050Freeを自動起動するように設定すると、2週間以上経過してもプッシュ着信できます
最後にロケットストーブの焚き口へ超省電力なDC扇風機で風を送ると、横引き煙突が12m以上あっても煙が逆流してきません。
よって、横引き煙突で超高効率な熱回収ができるので薪が少量で済みます
あと、燃焼室の大きさは『無煙竹ボイラMBG150』で検索して参考にして下さい
http://i.imgur.com/iVuglg9.jpg
http://jp.misumi-ec.com/material/mech/KRT1/PHOTO/KRT1_221004926837.jpg
http://livedoor.blogimg.jp/zoukibayashinokai/imgs/2/a/2a3c6dc0.jpg
14
BitTorrent(Covenant)が活発な情報交換・交流コミュニティでオープンソース開発されています(プログラマー募集中)
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise氏)がそういう人と話したいそうなので、よろしければツイートお願いします<(_ _)>
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできない情報発信好きアスペルガーw
通話料が激安になるブラステル(050 Free)で、かなり遅延や音声途切れが発生する方は、以下の設定を試してください
○ Wifiと3Gのコーデックは2つ(GSM、G.711u-Law)とも有効にしておく
○ エコーキャンセルをOFF(チェックを外す)にする
○ あとの設定はデフォルトのまま
http://blog.livedoor.jp/gnunobian/archives/52013458.html
上記の設定でも音質が悪い方は、wolfsonの高音質チップを搭載した機種(Galaxy 初代S、S3、S6、 AQUOSPhone ZETA SH-06E、AQUOSPhone si SH-07E、AQUOSPhone Xx 206SH、 Galaxy Note II)に買い換えて下さい。
500円以下の格安SIMで使えて登録・月額無料、IPベース発信なら携帯へは5.5円/30秒、固定へは8円/3分(月額無料でこの価格はすごい!)
http://blog.jikoman.jp/2015/11/brastel-050-free.html
あと、050Freeの起動もしくは発着信が2週間以上ないとプッシュサーバー期限切れでプッシュ着信が出来なくなるので、Llama Location Profilesで1週間に一度050Freeを自動起動するように設定すると、2週間以上経過してもプッシュ着信できます
最後にロケットストーブの焚き口へ超省電力なDC扇風機で風を送ると、横引き煙突が12m以上あっても煙が逆流してきません。
よって、横引き煙突で超高効率な熱回収ができるので薪が少量で済みます
あと、燃焼室の大きさは『無煙竹ボイラMBG150』で検索して参考にして下さい
http://i.imgur.com/iVuglg9.jpg
http://jp.misumi-ec.com/material/mech/KRT1/PHOTO/KRT1_221004926837.jpg
http://livedoor.blogimg.jp/zoukibayashinokai/imgs/2/a/2a3c6dc0.jpg
14
839仕様書無しさん
2016/05/06(金) 21:15:58.63840仕様書無しさん
2016/05/06(金) 22:40:55.77 「。」を多用してるし、ただの2ch初心者かな
841仕様書無しさん
2016/05/07(土) 01:39:27.12 >>840
意味不明
意味不明
842仕様書無しさん
2016/05/07(土) 02:17:51.24 >>837
そういうことだろう。
ビジネスロジックで、分岐判断してるコードとその結果を判断するコードが
離れまくってるってのは大概問題ありなコードだろうし、直す必要があるって
兆候と見ていいんじゃないかね。
そういうことだろう。
ビジネスロジックで、分岐判断してるコードとその結果を判断するコードが
離れまくってるってのは大概問題ありなコードだろうし、直す必要があるって
兆候と見ていいんじゃないかね。
843仕様書無しさん
2016/05/07(土) 08:01:10.42 おいおい何ヶ月前のレスにレスしてんだよ・・・
本当に2ch初心者なんじゃね?
本当に2ch初心者なんじゃね?
844仕様書無しさん
2016/05/07(土) 11:12:55.39 初心者言いたいだけだろw
845仕様書無しさん
2016/05/11(水) 18:04:18.81 以下ループ
846仕様書無しさん
2016/05/29(日) 10:40:08.08 throwとthrowsの違いが分かりません…。
847仕様書無しさん
2016/05/29(日) 10:55:53.57 throw 投げろ
throws 投げます
throws 投げます
848仕様書無しさん
2016/05/29(日) 11:07:31.80 throwが「投げろ」の意味がいまいち分かりませんが…
849仕様書無しさん
2016/05/29(日) 18:52:17.07 throw 今から投げるよんー
throws これは投げるんですよ
throws これは投げるんですよ
851仕様書無しさん
2016/05/29(日) 21:57:12.35 動詞と名詞の違いだろw
853仕様書無しさん
2016/05/30(月) 22:31:24.65 単数形と複数形の違いだろ
854仕様書無しさん
2016/06/05(日) 22:34:55.12 取り敢えずすろうず使っとけ
855仕様書無しさん
2017/06/12(月) 05:36:40.23 嫌だ
856仕様書無しさん
2017/06/12(月) 20:06:05.70 嫌だなんて言われるなんて想定外です
857仕様書無しさん
2017/12/29(金) 21:00:23.49 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
FSCHX3VEAA
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
FSCHX3VEAA
858仕様書無しさん
2018/05/22(火) 14:06:14.07 とても簡単な自宅で稼げる方法
参考までに書いておきます
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
WCSBV
参考までに書いておきます
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
WCSBV
859仕様書無しさん
2019/11/20(水) 15:28:46.96 競技プログラマーのことか
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本は「核不拡散リーダー」 高官の保有発言で 米国務省 [ぐれ★]
- 「刑務所よりひどい」"切り身1切れ"の小学校給食に保護者絶句 給食無償化でさらなる予算削減も [少考さん★]
- 日本は「核不拡散リーダー」 高官の保有発言で 米国務省 ★2 [ぐれ★]
- NY円、一時157円台半ばに下落 日銀総裁の利上げ慎重姿勢を警戒 ★2 [蚤の市★]
- 【物価高騰】「クリスマスケーキを用意できない」が7割超 炊き出しにも長蛇の列 生活困窮者に厳しい年の瀬が到来 ★2 [ぐれ★]
- 立民・野田代表「早急に辞任を」 首相官邸筋の核兵器保有発言 ★5 [蚤の市★]
- 【実況】博衣こよりのえちえちドラクエ1&2リメイク🧪
- 高市政府、外国人の日本語教育ルール習得へ。こういうのでいいんだよ [237216734]
- 「なぜあの戦争を避けられなかったか」 今ならわかりますよね 結局、国民がホルホルと被害妄想でノリノリ天国だったんです [452836546]
- インキャの部屋にありがちな物
- 【画像】JKさん、クラスメイトにあたシコしてしまう
- ワイが今までに経験した恋愛エピソードランキングwww
