最初のResponse.Writeがエラー
        
        投稿者 kojiro  (社会人)
        
        投稿日時 
            2020/5/30 14:46:17
        
    
    
        Dim td2 As String
td2 = "M_Test.CSV"
Response.AppendHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(td2))
Response.ContentEncoding = System.Text.Encoding.GetEncoding("shift_jis")
Response.ContentType = "text/csv"
Response.Write("Death Data")
Response.End()
でうまくいきますね。なんだろう。
    
td2 = "M_Test.CSV"
Response.AppendHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(td2))
Response.ContentEncoding = System.Text.Encoding.GetEncoding("shift_jis")
Response.ContentType = "text/csv"
Response.Write("Death Data")
Response.End()
でうまくいきますね。なんだろう。
        投稿者 kojiro  (社会人)
        
        投稿日時 
            2020/5/30 14:48:15
        
    
    
        ファイル名がおかしいのではと思います。解決にします。
    
    
        投稿者 るきお  (社会人)
        
        投稿日時 
            2020/5/30 14:49:20
        
    
    
        このプログラムで試したところ特にエラーにはなりませんでした。
エラーになるプログラムの全体を教えていただけますか?
    
エラーになるプログラムの全体を教えていただけますか?
Public Class WebForm1
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim encode As System.Text.Encoding
        Dim td2 As String
        td2 = "M_Test.CSV"
        encode = System.Text.Encoding.GetEncoding("Shift-JIS")  '文字コードにShiftJISを指定。(UTF8の場合は指定不要) 
        Response.AppendHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(td2))
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("shift_jis")
        Response.ContentType = "text/csv"
        Response.Write("Death Data")
    End Sub
End Class
    
        投稿者 kojiro  (社会人)
        
        投稿日時 
            2020/5/30 15:26:49
        
    
    
        単純な、プログラムでは、動きます。
response.close()はいらないみたいで、・・
今回は、この単純なプログラムの前に、クラスを使っています。・・
だけど、それだけで
Dim td2 As String
td2 = "MXXX_Test.CSV"
Response.AppendHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(td2))
Respon・・・
のtd2 = "MXXX_Test.CSV"で黄色くなって、ユーザーが処理していない例外,System.IndexOutOfRangeException: 'インデックスが配列の境界外です。'
です。例外例を記入してないからでしょうか?
throw exceptionなどとか・・
    
    
response.close()はいらないみたいで、・・
今回は、この単純なプログラムの前に、クラスを使っています。・・
だけど、それだけで
Dim td2 As String
td2 = "MXXX_Test.CSV"
Response.AppendHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(td2))
Respon・・・
のtd2 = "MXXX_Test.CSV"で黄色くなって、ユーザーが処理していない例外,System.IndexOutOfRangeException: 'インデックスが配列の境界外です。'
です。例外例を記入してないからでしょうか?
throw exceptionなどとか・・
        投稿者 kojiro  (社会人)
        
        投稿日時 
            2020/5/30 15:58:24
        
    
    
        Dim tdx As String = ""
tdx = "MXXX_Test.csv"
では1行目のDim tdx As String = ""が黄色くなり、tdxのところへカーソルを持っていくとnothingですが・・単純にプログラムミスでした。この前のところで、宣言した配列以上の記述をしていました。ここの箇所が、黄色くなってくれれば、いいものを、其の後の、エラー出ない箇所へ黄色くなるんです。
    
tdx = "MXXX_Test.csv"
では1行目のDim tdx As String = ""が黄色くなり、tdxのところへカーソルを持っていくとnothingですが・・単純にプログラムミスでした。この前のところで、宣言した配列以上の記述をしていました。ここの箇所が、黄色くなってくれれば、いいものを、其の後の、エラー出ない箇所へ黄色くなるんです。
        投稿者 るきお  (社会人)
        
        投稿日時 
            2020/5/30 16:40:03
        
    
    
        コピー&貼り付けでエラーが再現できるプログラムを貼り付けていただければ何かわかるかもしれません。
書いていないことを推測してエラーの原因を探すのは難しいです。
    
書いていないことを推測してエラーの原因を探すのは難しいです。
        投稿者 るきお  (社会人)
        
        投稿日時 
            2020/5/30 16:40:05
        
    
    
        コピー&貼り付けでエラーが再現できるプログラムを貼り付けていただければ何かわかるかもしれません。
書いていないことを推測してエラーの原因を探すのは難しいです。
    
書いていないことを推測してエラーの原因を探すのは難しいです。
        投稿者 kojiro  (社会人)
        
        投稿日時 
            2020/5/30 20:51:19
        
    
    
        Dim aged(19) As String
aged(20) = "合計"
Dim td2 As String
td2 = "M5_Test.CSV"
Response.AppendHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(td2))
Response.ContentEncoding = System.Text.Encoding.GetEncoding("shift_jis")
Response.ContentType = "text/csv"
Response.Write("Death Data")
Response.Write(",")
Response.Write("Death Data")
Response.Write(",")
Response.Write("Death Data")
Response.Write(vbCrLf)
’Response.Close()
Response.End()
です。
    
aged(20) = "合計"
Dim td2 As String
td2 = "M5_Test.CSV"
Response.AppendHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(td2))
Response.ContentEncoding = System.Text.Encoding.GetEncoding("shift_jis")
Response.ContentType = "text/csv"
Response.Write("Death Data")
Response.Write(",")
Response.Write("Death Data")
Response.Write(",")
Response.Write("Death Data")
Response.Write(vbCrLf)
’Response.Close()
Response.End()
です。
        投稿者 るきお  (社会人)
        
        投稿日時 
            2020/5/30 23:34:07
        
    
    
        興味深いですね。情報提供ありがとうございます。

このエラーの原因は aged(20) = "合計" です。 aged は (19) で宣言されているので、 aged(20) を使用すると IndexOutOfRangeException になります。
そのため、本来は aged(20) = "合計" の行が黄色くなって実行が停止されるべきですが、Visual Studioはエラーになっている行を間違えて黄色くしてしまっているみたいです。
Visual Studioも間違えることがあるんです。
この画像はVisual Studio 2019 バージョン 16.6 で実行して採取しました。Visual Studio 2017でも同じでした。
    

このエラーの原因は aged(20) = "合計" です。 aged は (19) で宣言されているので、 aged(20) を使用すると IndexOutOfRangeException になります。
そのため、本来は aged(20) = "合計" の行が黄色くなって実行が停止されるべきですが、Visual Studioはエラーになっている行を間違えて黄色くしてしまっているみたいです。
Visual Studioも間違えることがあるんです。
この画像はVisual Studio 2019 バージョン 16.6 で実行して採取しました。Visual Studio 2017でも同じでした。
        投稿者 るきお  (社会人)
        
        投稿日時 
            2020/5/30 23:49:48
        
    
    
        マイクロソフトに報告しておきました。
どうなるかな・・・。
https://developercommunity.visualstudio.com/content/problem/1057333/debugger-shows-wrong-line.html
    
どうなるかな・・・。
https://developercommunity.visualstudio.com/content/problem/1057333/debugger-shows-wrong-line.html
        投稿者 koijro  (社会人)
        
        投稿日時 
            2020/5/31 09:44:11
        
    
    
        ありがとうございます。
エラーの部分で、正しく黄色くなってほしいです。
    
エラーの部分で、正しく黄色くなってほしいです。
        投稿者 葉月  (社会人)
        
        投稿日時 
            2020/5/31 12:01:05
        
    
    
        少し興味があったので、C#で試したら同じ現象が起きました。
同じ.NET言語なので同じ結果になりますね。
string[] strs = new string[5];
strs[6] = "abc";
Console.WriteLine("test"); // ここで例外が発生
VSで動かしているPython試したら、正しい場所で例外が起きています。
(Python3.8をインストールしています。こちらも想定通りです)
import array as arr
nums = arr.array("i", [0, 1, 2, 3, 4])
print(nums[0])
nums[5] = 5 #正しく指摘
print(nums[4])
    
同じ.NET言語なので同じ結果になりますね。
string[] strs = new string[5];
strs[6] = "abc";
Console.WriteLine("test"); // ここで例外が発生
VSで動かしているPython試したら、正しい場所で例外が起きています。
(Python3.8をインストールしています。こちらも想定通りです)
import array as arr
nums = arr.array("i", [0, 1, 2, 3, 4])
print(nums[0])
nums[5] = 5 #正しく指摘
print(nums[4])
Dim encode As System.Text.Encoding
Dim td2 As String
td2 = "M_Test.CSV"
encode = System.Text.Encoding.GetEncoding("Shift-JIS") '文字コードにShiftJISを指定。(UTF8の場合は指定不要)
Response.AppendHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(td2))
Response.ContentEncoding = System.Text.Encoding.GetEncoding("shift_jis")
Response.ContentType = "text/csv"
Response.Write("Death Data") <-ここで、System.IndexOutOfRangeException: 'インデックスが配列の境界外です。'となります。