C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 | 1 >>
■3956  Re[6]: クリスタルレポートの疑問…4点
□投稿者/ 名無しぃシャープ -(2006/05/26(Fri) 13:06:01)
記事No.3916 のレス /0過去ログ4より / 関連記事表示
削除チェック/

■6329  Re[9]: DataGridのItemDataBoundの
□投稿者/ いしだ -(2007/08/07(Tue) 20:48:37)
>
    2007/08/07(Tue) 21:01:01 編集(投稿者)

    やろうとしているのは、こういう事でしょうか?

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
    if (GridView1.EditIndex != e.Row.RowIndex)
    {
    ((Label)e.Row.Cells[3].FindControl("Label1")).Text = "変更後の値";
    }
    else
    {
    ((DropDownList)e.Row.Cells[3].FindControl("DropDownList1")).SelectedValue = "変更後の値";
    }
    }
    }

    多分違うでしょうね。。。
    詳しく説明していただけると、ちゃんと答えられるかもしれません。
記事No.6245 のレス /過去ログ17より / 関連記事表示
削除チェック/

■48186  Re[4]: ファイルのコピー・移動について
□投稿者/ 中の上くらいの初心者 -(2010/03/26(Fri) 15:54:47)
    2010/03/26(Fri) 15:56:06 編集(投稿者)

    No48185 (.SHO さん) に返信
    > System.IO.File.Copyを全てのファイルに対して繰り返すじゃダメなの?

    えっと、それを使ってデバッグすると、
     *****はディレクトリですというエラーが起こってしまうんです。
    ディレクトリのほうには35件くらい画像ファイルが入っています。
    新ディレクトリにはファイルが入っていません。
    元になるほうではファイルを指定できるのですが、
    先になるほうではファイルを指定できないのが、エラー原因でしょうか。
    あと、リストボックス内で繰り返す処理の仕方を教えていただけない
    でしょうか。
記事No.48181 のレス /過去ログ81より / 関連記事表示
削除チェック/

■61249  Re[4]: XmlDocument.Loadメソッドのタイムアウト時間
□投稿者/ 小林 -(2011/08/07(Sun) 12:08:07)
    皆様アドバイス有り難うございました。

    結局、HttpWebRequestでタイムアウトを設定して実現する事が出来ました。

    有り難うございました。

記事No.61039 のレス / END /過去ログ102より / 関連記事表示
削除チェック/

■75597  Re[3]: My.Computer.Infoについて
□投稿者/ WebSurfer -(2015/04/10(Fri) 15:52:01)
    No75595 (鏡月 さん) に返信

    VB.NET は詳しくないのでハズレかもしれませんが・・・

    Windows Forms アプリの My は C# でいう this で、それと VB 独自の My が衝突(?)を
    起こしているのではないですか?

    参考にされている記事の C# のコードと同様に、以下のようにしたらどうなりますか?

    Dim info As Microsoft.VisualBasic.Devices.ComputerInfo = New Microsoft.VisualBasic.Devices.ComputerInfo()
    Console.WriteLine("利用可能仮想メモリ:{0}バイト", info.AvailableVirtualMemory)
記事No.75592 のレス /過去ログ127より / 関連記事表示
削除チェック/

■86487  どんな例外が考えられるか
□投稿者/ kiku -(2018/02/05(Mon) 20:29:36)

    分類:[.NET 全般] 

    環境
    C# WindowsFormアプリ

    Move中にファイルをオープンする場合にどんな例外が発生する可能性がありますでしょうか?

    アプリ1(PC1)では、下記のようにローカルフォルダにあるcsvファイルを
    PC2の共有フォルダに、拡張子tmpでコピーしてから、
    tmpからcsvへリネーム(move)しています。

    一方、PC2で動作しているアプリ2では、
    PC2上にある共有フォルダ内にあるCSVファイルを
    リードしている状況になります。
    このリード中に例外が発生しましたが、
    例外を握り潰していたため、どんな例外が発生したかは
    わからない状況です。
    どんな例外が発生する可能性があるでしょうか?

    1日に1回程度発生し、どうして発生するかわからない状況です。
    通常は問題なくファイルオープンできているため、
    リネーム中にファイルをオープンすると発生することがあるのでは
    ないかと想像していますが
    例外を握り潰しているため、詳細がわかりません。

    理論上、どんな例外が発生するでしょうか?
    当方では発生しないはずとしてコーディングしています。


    ●アプリ1
    string DIR = Path.Combine("PC1のローカルフォルダのパス", "csv");
    var localfile = Directory.GetFiles(DIR, "*", SearchOption.TopDirectoryOnly);
    var filelist = localfile.Where(x => Regex.IsMatch(Path.GetFileName(x), @"^.*\.csv$", RegexOptions.IgnoreCase));
    filelist.OrderBy(x => x);
    foreach(var f in filelist)
    {
    var filename = Path.GetFileNameWithoutExtension(f);
    var tmpfilename = Path.Combine("PC2の共有フォルダのパス", filename + ".tmp");
    var csvfilename = Path.Combine("PC2の共有フォルダのパス", filename + ".csv");
    try
    {
    File.Copy(f, tmpfilename, true);
    if (File.Exists(csvfilename))
    {
    continue;
    }
    File.Move(tmpfilename, csvfilename);
    File.Delete(f);
    }
    catch (Exception ex)
    {
    continue;
    }
    }

    ●アプリ2
    var localfile = Directory.GetFiles("PC2の共有フォルダのパス", "*", SearchOption.TopDirectoryOnly);
    var filelist = localfile.Where(x => Regex.IsMatch(Path.GetFileName(x), @"^.*\.csv$", RegexOptions.IgnoreCase));
    filelist.OrderBy(x => x);
    foreach(var f in filelist)
    {
    try
    {
    var ret = Read_f(f);
    if (!ret)
    {
    throw new Exception("ファイル読取エラー");
    }
    }
    catch (Exception ex)
    {
    ●ここで例外発生したが、Exceptionを握り潰していたためどんな例外かわからない。
    }
    }

    private void Read_f(string filename)
    {
    using (var sr = new StreamReader(filename, Encoding.UTF8))
    {
    while (!sr.EndOfStream)
    {
    var line = sr.ReadLine();
    }
    sr.Close();
    }
    }

親記事 /過去ログ148より / 関連記事表示
削除チェック/

■86488  Re[1]: どんな例外が考えられるか
□投稿者/ あまみ -(2018/02/06(Tue) 08:50:29)
    C#にはキャッチした例外をvb.netのようにex.Messageでエラー内容を表示するのがありませんでしたっけ?
    調べてみたらC#でも使えるみたいなんでMsgBoxで見てみたらどうでしょうか。
記事No.86487 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86489  Re[2]: どんな例外が考えられるか
□投稿者/ とっちゃん -(2018/02/06(Tue) 10:38:12)
    No86487 (kiku さん) に返信

    > 理論上、どんな例外が発生するでしょうか?
    > 当方では発生しないはずとしてコーディングしています。

    理論上ということであれば、ディスク操作しているので、ディスクエラー関連の例外は一通り配慮が必要だと思います。
    アプリ2はリードのみ(ただしアプリ1側は別)なのでディスクフルは出ないと思いますが。。。

    また、よくあるエラーの一つにアンチウィルスソフトがアクセスしていたためアクセスに失敗というのもあります。
    パッケージベンダーさんだと大体年に一度くらいはこのネタでサポートがにぎわうくらいにはメジャーです。

    そのほかではハードウェアエラーの類がありますね。セクタが読めなくてリードエラーもよくある話題の一つです。

    その他、ソースに記述していない処理の部分で例外が出る可能性もあります。
    ReadLine() 部分は読み捨てているソースとなっていますが、実際にはそこで何かしていると思います。
    その何かの処理中にメモリ不足などが発生すれば例外が発生します。UTF8のつもりで読んでいるのに保存しているのは
    Shift-JISだと、ASCII以外の文字コードで文字化けするため、それが理由でエラーになるなどもあります。

    理論上という意味でいえば、ほかにも例外は出る可能性がありますが、ソースコードの全文があるわけではないので
    これ以上は何とも言えません。

    あと、本題とは関係ありませんが

    filelist.OrderBy(x => x);

    では、OrderBy の結果が使われません。言い換えれば無駄な処理を呼び出している状態といえます。

    これが、

    var filelist = localfile.Where(x => Regex.IsMatch(Path.GetFileName(x), @"^.*\.csv$", RegexOptions.IgnoreCase)).OrderBy(x => x);

    であればまた違ってきますが...

    それと、拡張子を絞りたいだけなら、GetFiles のパラメータで指定するという方法もあります。
    また、Path.GetFileName() ではなく、Path.GetExtension() を使えば、拡張子だけ取得できます。


    さて、理論上発生しうる例外という点ではほかにもあるかもしれませんが
    ソースコードが修正可能なのであれば、例外を無条件に握りつぶすのではなく
    ログを取得しておくなど、あとで確認できる方法をとることはできないのでしょうか?

    ex.Message だけでもかなりの判断が可能と思いますが、ex.ToString() でトレースも含めて詳細を
    吐き出しておくことでより詳しく調査することができます。
記事No.86487 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86490  Re[3]: どんな例外が考えられるか
□投稿者/ kiku -(2018/02/06(Tue) 12:54:35)
    なんだかわからない状況で、
    ご回答頂きありがとうございます。

    例外をログに吐き出していれば
    そこから原因を追究することが出来るのですが
    お客様先で稼働しているアプリなので
    原因を説明しないと、アプリを入れ替えることも出来ない状況にあります。

    お客様へ説明し、原因追及のため、ログを追加したアプリに
    入れ替えさせてほしいと依頼する方向で進めます。

    ちなみにアプリ1でリネーム中(move。tmpからcsvへ)に
    アプリ2でDirectory.GetFilesにてCSVファイル名一覧を取得し、
    アプリ2で読取を行うことはあるのでしょうか?
    moveが完了しないと、Directory.GetFilesにてリネーム後のcsvは
    取得できないと考えています。

記事No.86487 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86491  Re[4]: どんな例外が考えられるか
□投稿者/ なちゃ -(2018/02/06(Tue) 15:13:07)
    定義ではRead_fは戻り値無しですが、呼び出し側では戻り値でエラーチェックしています。
    実際のコードがどうなっているか分かりませんが、Read_f側ですでに握りつぶしている可能性もありますので注意してください。

    調査に関しては、例外のログを加える事を許可もらう方が早いでしょうしいいでしょう。
    ただ、例外は分かっても原因は分からない可能性はあります。
    短時間で少数回のリトライ処理などは入れた方がよいだろうと思います。

    あと、例外が発生したと分かったのはなぜですか?
    例外が発生してるのは確実ですか?
    見たところ例外が発生したことも確認できないコードに思えるので。
記事No.86487 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86492  Re[5]: どんな例外が考えられるか
□投稿者/ kiku -(2018/02/06(Tue) 18:18:11)
    No86491 (なちゃ さん) に返信
    > 定義ではRead_fは戻り値無しですが、呼び出し側では戻り値でエラーチェックしています。
    > 実際のコードがどうなっているか分かりませんが、Read_f側ですでに握りつぶしている可能性もありますので注意してください。

    承知致しました。

    > 調査に関しては、例外のログを加える事を許可もらう方が早いでしょうしいいでしょう。
    > ただ、例外は分かっても原因は分からない可能性はあります。
    > 短時間で少数回のリトライ処理などは入れた方がよいだろうと思います。

    サンプルアプリを作ろうと思います。

    > あと、例外が発生したと分かったのはなぜですか?
    > 例外が発生してるのは確実ですか?
    > 見たところ例外が発生したことも確認できないコードに思えるので。

    掲載したソースでは、省いておりますが、
    実際には例外をキャッチし、ログを取得しています。
    しかし、ログの内容が「e.ToString()」を記述していないため
    キャッチしても例外内容がわからない状況になっています。
    なので確実に例外が発生しています。

記事No.86487 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86493  Re[6]: どんな例外が考えられるか
□投稿者/ とっちゃん -(2018/02/06(Tue) 18:46:00)
    No86492 (kiku さん) に返信
    > 掲載したソースでは、省いておりますが、
    > 実際には例外をキャッチし、ログを取得しています。
    > しかし、ログの内容が「e.ToString()」を記述していないため
    > キャッチしても例外内容がわからない状況になっています。
    > なので確実に例外が発生しています。
    >
    >
    例外が発生していることがわかっているということは、理論上の話ではなく
    現実のエラーからわかることは何か?トラブルシュートするにはどうすればいいか?
    なのではないでしょうか?
記事No.86487 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86509  Re[7]: どんな例外が考えられるか
□投稿者/ kiku -(2018/02/07(Wed) 13:17:04)
    No86493 (とっちゃん さん) に返信
    > 例外が発生していることがわかっているということは、理論上の話ではなく
    > 現実のエラーからわかることは何か?トラブルシュートするにはどうすればいいか?
    > なのではないでしょうか?

    失礼しました。「理論上」という言葉が悪かったかと思います。
    実際に例外が発生しているが、その例外内容がわからない状況です。
    そこでその例外がどんな例外か想定できないかということがご質問になります。
    それが想定できれば、対処方法もわかってくると思っています。
記事No.86487 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86514  Re[8]: どんな例外が考えられるか
□投稿者/ とっちゃん -(2018/02/07(Wed) 15:29:36)
    No86509 (kiku さん) に返信
    > ■No86493 (とっちゃん さん) に返信
    >>例外が発生していることがわかっているということは、理論上の話ではなく
    >>現実のエラーからわかることは何か?トラブルシュートするにはどうすればいいか?
    >>なのではないでしょうか?
    >
    > 失礼しました。「理論上」という言葉が悪かったかと思います。
    > 実際に例外が発生しているが、その例外内容がわからない状況です。
    > そこでその例外がどんな例外か想定できないかということがご質問になります。
    > それが想定できれば、対処方法もわかってくると思っています。

    例外が発生していることは把握しているんですよね?
    ログのようなものをとっているみたいですが、そこからわかることはないのでしょうか?
    throw new Exception("ファイル読取エラー");
    の例外ログしか残っていないということでしょうか?

    なんにしても、Read_f の実装が異なる(戻り値がないのになにか受け取っている)ので
    現状のソースから見えるものと言ったら、Read_f の中身くらいと思いますが
    提示のソースからは
    StreamReaderのコンストラクタ
    EndOfStream プロパティ
    ReadLine メソッド
    はそれぞれ例外を投げるか?投げるとすればどのような例外か?

    程度になると思います。
    いずれも、リファレンス(VS上でソースの該当位置にカーソルを置いてF1を押せばでる)を見れば、どんな例外を投げるか出ていますが
    それでは足りない(もしくはそれとは異なる例外が出ている)ということですかね?
記事No.86487 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86634  Re[9]: どんな例外が考えられるか
□投稿者/ kiku -(2018/02/23(Fri) 17:55:35)
    その後進展がありましたのでご報告させて頂きます。
    ログを強化したアプリにて、現象が再現し、
    下記のような例外が発生していることがわかりました。

    アプリ2での例外
    System.IO.StreamReaderにて
    別のプロセスで使用されているため、プロセスはファイル '*****' にアクセスできません。
    System.IO.IOException: 別のプロセスで使用されているため、プロセスはファイル '*****' にアクセスできません。

    これから考えられることは、
    アプリ1のMove命令でファイルがロックしているというように思ったのですが
    認識違いはありますのでしょうか?
    Move命令はロックしないと思っていたのですが。。。。
記事No.86487 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86642  Re[10]: どんな例外が考えられるか
□投稿者/ 渋木宏明(hidori) -(2018/02/25(Sun) 07:19:34)
    > Move命令はロックしないと思っていたのですが。。。。

    ファイルシステムまたいでたら無理でしょ。
記事No.86487 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86643  Re[11]: どんな例外が考えられるか
□投稿者/ kiku -(2018/02/25(Sun) 09:15:21)
    No86642 (渋木宏明(hidori) さん) に返信
    >>Move命令はロックしないと思っていたのですが。。。。
    >
    > ファイルシステムまたいでたら無理でしょ。

    やっぱりそうなんですね。
    事実を受け入れるように致します。

    対処方法ですが、
    他プロセスが利用中であるか、そうでないか例外によって判断し、
    処理を分けることを考えています。

    System.IO.StreamReaderにおけるIOExceptionは、
    他プロセスが利用中のみ発生するのでしょうか?
    それとも他の要因も考えられるのでしょうか?
記事No.86487 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86644  Re[12]: どんな例外が考えられるか
□投稿者/ Azulean -(2018/02/25(Sun) 09:22:18)
    No86643 (kiku さん) に返信
    > System.IO.StreamReaderにおけるIOExceptionは、
    > 他プロセスが利用中のみ発生するのでしょうか?
    > それとも他の要因も考えられるのでしょうか?

    ほかの要因もあり得ますし、IOException はそれを継承した例外クラスがほかにもありますので、IOException で catch するだけでは不十分です。

    https://msdn.microsoft.com/ja-jp/library/system.io.ioexception の 継承階層 を参照。
記事No.86487 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86645  Re[13]: どんな例外が考えられるか
□投稿者/ kiku -(2018/02/25(Sun) 09:37:01)
    > ほかの要因もあり得ますし、IOException はそれを継承した例外クラスがほかにもありますので、IOException で catch するだけでは不十分です。
    > ※ https://msdn.microsoft.com/ja-jp/library/system.io.ioexception の 継承階層 を参照。

    ありがとうございます。
    やはりそうなのですね。
    階層構造を見てみました。
    発生しうる例外は下記になると思いました。

    System.IO.DriveNotFoundException
    System.IO.EndOfStreamException
    System.IO.FileLoadException
    System.IO.FileNotFoundException
    System.IO.PathTooLongException
    System.IO.PipeException

    System.IO.StreamReaderを実行する前に、事前検証をしているため、
    この中で現実的に発生するのは、下記であると考えました。

    System.IO.FileLoadException

    これをキャッチしすれば判定できるという理解で正しいでしょうか?
    現象が容易に再現すれば、何度も発生させて検証できるのですが
    なかなか発生しないため、知見があれば教えてほしいです。
記事No.86487 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86646  Re[14]: どんな例外が考えられるか
□投稿者/ Azulean -(2018/02/25(Sun) 15:50:14)
    No86645 (kiku さん) に返信
    > System.IO.StreamReaderを実行する前に、事前検証をしているため、
    > この中で現実的に発生するのは、下記であると考えました。
    >
    > System.IO.FileLoadException
    >
    > これをキャッチしすれば判定できるという理解で正しいでしょうか?

    StreamReader では発生しないでしょうね、それは。

    誤解しているようですが、私が言いたかったのは「catch (IOException) だと、そのクラスを継承した例外クラスも同じようにキャッチしてしまい、狙った例外だけを捉えることができない」ということです。
    また、IOException は「入出力関する汎用的な例外」であり、今回のエラー以外の場合もスローされる恐れはあります。

    なので、どういったことをしたいか?によって対応は変わると思います、

    1.ファイルがロックされているところだけ狙いたいのか? → catch(IOException) かつエラーコード判定
    2.IOException のファイルロック以外のエラーもまとめてキャッチしてかまわないのか? → catch(IOException)
    3.あらゆる例外を握りつぶしてリトライしたいのか? → catch(Exception)
記事No.86487 のレス /過去ログ148より / 関連記事表示
削除チェック/

次の20件>

<< 0 | 1 >>

パスワード/

- Child Tree -