まどか の ブログ

~ はぐれSE 純情派 ~

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  124  : 記事  0  : コメント  2244  : トラックバック  22

書庫

日記カテゴリ

わんくま同盟

ognacさんの記事で思い出したお話。

VB6から言語コンバートしたようなシステムでModuleが大きな顔して居座っていたのですが
いわゆる共通Moduleっつうことですべてのプロジェクトにファイルリンクで取り込まれるModuleがありました。
その中に
Public Class xxxException
End Class
があり、
必須参照のDLLプロジェクトに
Public Function yyy() As zzz
    Throw New xxxException
End Function
がありました。
でもって、自分の担当のプロジェクトでその関数を使う場面が出てきて
Catch ex As xxxException
と何も考えずに書き、エラーもありませんでした。
で、そこを通るテストをしたとき、あれ?、ん?、なんでー!?、関数はちゃんとThrowしてんのに、なんでぇ?
そうです。xxxExceptionを定義したModuleを全プロジェクトが参照してるので
それぞれが、MyProject.xxxExceptionとCommonProject.xxxExceptionを持ちxxxExceptionは暗黙で内側のMyProject.xxxExceptionとなり
エラーも出ず、実行時には型が不一致でCatchを通らなかったのです。

私:「これ、まずいんじゃないの?」
X:「CommonProject.xxxExceptionと書くとコーディング基準で決まっているようですよ」

あのぉ、いや、わかりました。。。

投稿日時 : 2006年10月24日 0:12

コメント

# re: ファイルリンクで一杯食わされた。 2006/10/24 1:12 ognac
食わされましたか。
DLLが使う例外がModuleにあるのも? それを共通化ソースにする不思議.. コボルの /Copy 文化だ~。

>コーディング基準で決まっているようですよ
でました(半端な)基準優先体制。
基準が現行の環境に合致しているか否か判断してないんですね。ありがちなことですが悲しい現実。


Post Feedback

タイトル
名前
Url:
コメント