Resonse.End()用法


ASP開発では、大きなセグメントのif…elseで判断することがありますが、ダイナミックなResonse.writeの内容なら、コードをより読みやすくしたいです。Resonse.End()でASPの実行ができます。Breakの使い方と似ています。例を挙げます。

  if (userid="")or(password="") then
  	Response.Write("<script lanuage=javascript>alert('UserName or Password is Empty!');location.href='../default.asp';</script>")

	Response.End() ‘       
  end if

                  ,   n   

このようにして、入力されたユーザ名またはパスワードが空の場合、自動的にwriteから情報を提示し、その後、Resonse.End()はプログラムを中断してifに達する。elseの役割
また、Resonse.Endを使う時は、私達が日常的にデバッグする時です。
つぎのコードを実行したくないので、スティッチングのSQL文を出力します。そうすればいいです。


sql="select * from userinfo "

response.Write(sql)

response.End()

rs.open sql ,conn,1,1 '        
Response.End()が多すぎて正式に発表された時に注釈が落ちにくいということを恐れたら、次のコードのように関数でカプセル化できます。


sub debug()
  Response.End()
end sub
上のコードは以下のように修正されました。


sql="select * from userinfo "

response.Write(sql)

debug()

rs.open sql ,conn,1,1 '        

このように正式発表を行うと、関数debugの文言を注釈してデバッグの役割を果たすことができますが、これも問題があります。もしデバッグが多すぎると、デバッグ時に必要に応じてプログラムが中断できなくなります。以下のとおりです

sub debug(isBreak)
  'isBreak boolean    ,     true        ,  ,       
  if isBreak then
     Response.End()
  end
end sub
使用時のコードは以下の通りです。

sql="select * from userinfo "

response.Write(sql)

debug(false)

rs.open sql ,conn,1,1 '       

rs.close()

sql="select * from product "

response.write(sql)

debug(true)

rs.open sql,conn,1,1 '      

はい、このように基本的に私達のコントロールの中断の需要を満たすことができますが、簡単に分析しただけで、実はまだ十分ではありません。デバッグの需要はまだたくさんあります。実はプログラム開発は再構成再構成の再構成過程です。そんなに多くの設計パターンが出てくるかどうかは前人が実際の開発再構成過程から総括した経験です。