- PR -

VB.net「オブジェクト参照がオブジェクトインスタンスに設定されていません。」エラーについて

投稿者投稿内容
xxななおxx
ベテラン
会議室デビュー日: 2005/01/18
投稿数: 61
お住まい・勤務地: 東京(練馬)
投稿日時: 2005-01-26 19:05
ご指名なので簡単にご回答します。

----引用--------
  こうしたエラーの場合、発生する場合と、発生しない場合がありますでしょうか。
  それとも、常にエラーになるのでしょうか。
--------------

質問の意図が不明瞭なのですが、例の説明からすると
値を宣言しても
メソッド・プロパティを使うときに値が入ってこないケースがありえる
、または、”null”にされてしまう場合に該当のエラーが起こるという意味です。
オブジェクトならインスタンス化されていないということです。


nullのときに”出る時と出ないときがあるのか?”という質問の意図ならば、
私は必ず出ると思っていますし、
そのつもりで.NETを使用しています。
コードもそのようにエラーが出ないよう記述するようにしています。

もし”nullのときに該当エラーが出る時と出ないときがある”としたら、
Microsoftにクレームをつけたいところですが、
私は自分のコードのミス以外でそのエラーを見たことはありません。


----引用------------------
  今回のシステムは、プログラムは各端末に導入し、DBは一箇所(サーバー)ですが、
  スレッド処理(?)が発生することはありますでしょうか。
  それは、コーディングの仕方によるものなのでしょうか。
---------------------------
コーディングの仕方によるものですが・・・?
処理がDBであろうが印刷であろうが、
その処理を別のスレッドで行うことは可能だと思いますが?
そういう意図の質問でしょうか?

失礼かも知れないですが、
スレッドという言葉はわかりますか?
VB6以前しか開発したことが無いデベロッパーでは関係が薄い言葉ですが、
プロプラマ-の標準用語です。
作成者が意図して別スレッド処理で
何か行わせていないかぐらいは、
コードを理解できなくても聞いておいたほうがいいと思います。

それから、
Try&catchは普通に考えれば、
仕掛ける場所が違うとしかいえないのですが、
catch何をキャッチしてますか?
Exceptionでしょうか?
Exceptionだとして
ログには、Exceptionの何を書くようにしてますか?
それから、印刷をActiveReportで行っていたとして、
ActiveReportのオブジェクトが内部でエラーを出しているとかは
考えられないのでしょうか?

また、「印刷処理が終了」とおっしゃっているタイミングはどこなんでしょうか?
・紙がプリンタから出てきたとき?
・プリンタから指定の印刷ジョブが消えたとき?
・スプールか完了したとき?
・コードで、.print()?のような、印刷メソッドを抜けたとき?

エラーのタイミングが印刷終了直前〜後で、
「まちまち」だそうですが、印刷の終了は、どこだと判断されてますか?


いずれにしても、やはり、技術的フォローはこの情報だけでは無理です。
”ぺけ”さんの文章からは、
.NETで初めて製品化したこともあり、.NETで作成したものが
「エラーのトラップが正常機能してない?」
「ありえないエラーが起こっているような・・?」・
「.NETFrameworkそのもに問題があるのでは・・?」
という不安要素が多く感じられます。
現状調査がユーザー協力が得られず
環境・コードの問題すら調査が不可能であれば、
VB6などの別開発環境でつくり直したほうが
精神的にすっきりするのではないですか?
原因調査が不可能であれば、原因の特定はあきらめるしかないですよね?

「こんなことが、ありえるのか?ありえないのか?」という抽象表現の質問では
私は、「自分のコードのバグか、外部製コンポーネントの問題以外では
ありえないと信じて.NETを使っているプログラマーです。」としかいえないです。。

もっとも重要なのは、.NETを選択してユーザーに納品した立場上、
”Jittaさん”のコメントのMSDNのリンクの中を読んで、
技術屋さんとして、きちんとコードを照らし合わせてから
ここで議論したほうが良いと思います。
ぺけ
会議室デビュー日: 2005/01/24
投稿数: 4
投稿日時: 2005-01-27 08:51
xxななおxxさん、お返事ありがとうございます。
言語やプログラミングに関する知識がないままに質問を投げてしまい、
ご迷惑をおかけしたことお詫びします。

xxななおxxを含め、ご回答いただいた皆様には大変感謝しています。
少しでも、手がかりというか、情報が得られたこと、そして
回答しずらい質問にもかかわらずいろいろとアドバイスいただけたこと、
本当に感謝しています。ありがとうございました。

>原因調査が不可能であれば、原因の特定はあきらめるしかないですよね?
>「こんなことが、ありえるのか?ありえないのか?」という抽象表現の質問では
>私は、「自分のコードのバグか、外部製コンポーネントの問題以外では
>ありえないと信じて.NETを使っているプログラマーです。」としかいえないです。。

>もっとも重要なのは、.NETを選択してユーザーに納品した立場上、
>”Jittaさん”のコメントのMSDNのリンクの中を読んで、
>技術屋さんとして、きちんとコードを照らし合わせてから
>ここで議論したほうが良いと思います。


もう一度現状を調査し、調べるべきことを調べてから、やり直します。
また質問を投げさせていただくことがあるかもしれませんが、
そのときは、何かアドバイスいただけると幸いです。
ありがとうございました。
KURO
会議室デビュー日: 2005/06/01
投稿数: 1
投稿日時: 2005-06-15 20:54
僕の場合普通のボタンでも同様の現象が起きたことがあります。
スプレットでもありました。
もう一つ同様のオブジェクトを作成し、エラー対象になっているオブジェクトをリネームし
新しい方の名前をエラー対象だった名前にしたら動きました。
簡単に言うとプログラムはそのままでよいのでオブジェクトだけはり直しました。
ちなみにVS.NETでの開発環境です。
私も.NETはじめたばかりなので詳しくはわかりませんが.NETは不安定でバグがあるよと
知人から聞いていたのでこんなものなのかなぁと思ってます。
お役に立てる情報とは思えませんが参考になればと思います。
未記入
会議室デビュー日: 2005/08/09
投稿数: 1
投稿日時: 2005-08-09 13:37
Question:
・Printメソッドなどで印刷処理を実行した後、メソッド呼び出し元のモジュールが終了すると、その時点で印刷処理も終了してしまいます。
Answer:
Printメソッドの第3引数を省略するか、"True"に設定した場合、印刷処理が非同期(別スレッド)で実行されるため、呼び出し元のモジュールが終了すると印刷処理も終了してしまいます。
印刷後にモジュールが終了するような場合には、Printメソッドの第3引数を"False"にして実行してください。
第3引数を"False"に指定した場合、印刷処理が完了するまで、次の処理に進むことはありません。
ほい、正解

スキルアップ/キャリアアップ(JOB@IT)