画面の左側がわりと無駄な気がします。
public int hoge(){
int result = 0;
try {
if ( proc1() == 0 ){
// 正常処理
try {
if ( proc2() == 0 ){
// 正常処理
try {
if ( proc3() == 0 ){
// 正常処理
try {
if ( proc4() == 0 ){
// 正常処理
try {
if ( proc5() == 0 ){
// 正常処理
if ( proc6() == 0 ){
// 正常処理
// まだまだ続くよ!
} else {
// 異常処理
}
} else {
// 異常処理
}
} catch(Exception e) {
// 例外処理
}
} else {
// 異常処理
}
} catch(Exception e) {
// 例外処理
}
} else {
// 異常処理
}
} catch(Exception e) {
// 例外処理
}
} else {
// 異常処理
}
} catch(Exception e) {
// 例外処理
}
} else {
// 異常処理
}
} catch(Exception e) {
// 握りつぶす
}
return result;
}
使い方ヒント: 「これは臭う」という行を見付けたら、各行の
をクリックしてマーキングしておきましょう(要Twitter OAuth認証)
真面目に読み解いてないけど、各「例外処理」で同じことをしてるのであれば、
の方針だけでも、割とスッキリ整理できそうな。
それが根本的解決か、という視点で見ると、別の解がありそうだけれど。。
稀によくある
http://jeanne.wankuma.com/tips/csharp/programming/releasecom.html
↑↑↑初めて見た。こりゃ大胆。普通はtry - finally 一個に纏めるよなぁ。。
↑↑↑↑俺もそのサンプル思い出した。 そのサンプルは内容を理解するのによいサンプルだと思う。 ネストが深いのは共通だけど、こっちはfinallyでもなくcatchだからなぁ・・・
ifの条件逆にして早期returnしてやれば良いんじゃ・・・
投げられる例外の型増やしてそこでcatchスコープ大量の方が良かったかも.
そもそもprocXの引数チェックしてるのならばそこで例外処理してしまえばいいのに……
エクストリーム・インデント増やし
なんだこのネスト!?(驚愕)
握りつぶすwwwwwwwww なめとるんか……
コメント投稿には、twitter認証が必要です。
Twitter認証
なんという無駄なネスト・・・