Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

不可解なコードに出会うことがあります。

不可解なコードに出会うことがあります。(VB6のソースです。)
-------------▼
Private Function abc(ByVal b As Integer) As String
On Error GoTo ER
   Dim a As Integer
   Dim c As Integer
   a = 20
   c = a \ b
                                            '(*A)このままERに突入
ER:
  If Err.Number <> 0 Then                   '    Errorの有無判断
    Err.Raise Err.Number, , Err.Description
    abc = "異常終了"                        '(*B)
  else
    abc = "正常終了"
  End If
End Function
-------------▲
作成者は、「以前携わったプロジェクトの記述標準書に則ったソースだから行儀はいいはず。」と認識しています。
  違和感/疑問を感じないのも問題ですが、記述標準書の在り方にも問題が在りそうです。

問題な基準点(抜粋)
ア:最初にOn Errorを記述し、Error処理は一箇所で行う。
イ:出口は最後の一箇所にする。
ウ:関数の戻り値は正常終了/異常終了の区別を戻す。

例のソースはアイウを満たしてます。 (満たせばいいの?)
  (*A) 正常処理されたのに, Errorルーチンに飛び込む.
      その中で再度 Err.number<>0で Errorの有無を判定している.
      基準イを満たすための実装
  (*B)前行で Err.Raiseしているので決して実行されない.
      基準ウを満たすための実装.

基準アを設けている基準は時々みかけるので、まぁ良しとしましょう。(文句はあるが)

イとウは必須だとする基準は,基準がバグである。.......と思う....多分...(弱気)

一度確定した記述標準は見直されることは少ないのかな。このまま、.NETの世界に持ち込まれることもあるという。恐ろしや。

コードの行儀云々以前に、開発基準の行儀/モラルの見直しがいりますね。(SE/プロマネの仕事だと思います。)

 

投稿日時 : 2006年9月25日 18:25

Feedback

# re: 不可解なコードに出会うことがあります。 2006/09/25 22:54 R・田中一郎

これは、汚いコードですね。
こんなコード、書いていて楽しくないでしょうに・・・

# re: 不可解なコードに出会うことがあります。 2006/09/26 22:00 ognac

R・田中一郎 さん、ありがとうございます。
記述基準の認識は難しいです.
[法治国家だから悪法もまた悪法である]として従います?
うーん.力関係によりますね、.... 少なくとも,PGを突っ突くのかわいそう.

タイトル
名前
Url
コメント