本人初学asp.net,看到别人的代码里面(vb.net)基本所有的函数里面的程序段都在try下面,我原来记得好像vc下面的catch异常在release下面是没有用的,我现在在asp.net下面的tryCatch ex As Exception后面弹出的对话框在release之后是不是没有用阿,请高人指点
顺便问一下release必要性高吗?

解决方案 »

  1.   

    catch和throw不管怎么编译都是有效的
      

  2.   

    如果你具有C++背景,你可能对C++中的异常处理、结构化异常处理和MFC异常等技术比较熟悉。如果你具有VB背景,则你可能对On Error语句比较熟悉。在.NET之前每种语言都有自己的异常处理方式。对于.NET来说,所有创建受控代码的语言都共享相同的错误处理机制,.NET所支持的所有语言(C#、VC++.NET、VB.NET、VJ#)都具有同样丰富的异常处理功能。正如楼上所说,好运!
      

  3.   

    那么说是我记错了,那在asp.net里面,函数里面的编程习惯就是
    try
    程序段
    catch
    异常处理
    end try
    是吗?
      

  4.   

    1、结构化异常处理::
         try
             ...........
          catch
              ............
          flnally
               ................
         end try
       其中Catch的结构有三种:Catch、Catch...As 和 Catch...When。其中Catch...As 和 Catch...When 子句捕捉特定的异常,并允许相关的语句块指定应用程序如何处理。
         例:(登录界面部分代码)
               Dim sqlconn as New sqlcliet.sqlconnection(configurationsettings.appsettings("connectionstring"))
                         Dim select_string as string="select * from user where user_name='" & trim(user_name.text) & "' and user_pwd='" & trim(user_pwd.text) & "' " 
                          Dim select_comm as New sqlclient.sqlcommand(select_string,sqlconn)
                          Dim select_reader as sqlclient.sqldatareader                      try
                            sqlconn.open()
                            select_reader=selec_comm.executereader(commandbehaviorcloseconnection)
                            if select_reader.read()=true then
                                  dim username as string
                                  session("username")=trim(user_name.text)
                                  response.redirect("mian.aspx")
                                  select_reader.close()
                                  sqlconn.close()
                            else
                                  response.write("<script langusge='javascript' runat='server'>window.alert('用户名或密码错误错误!')</script>")
                            end if
                           catch sqlexc as execption
                                response.write("错误发生!"&sqlexc.tostring())
                           finally
                                if not select_reader is nothing then
                                        select_reader.close()
                                end if
     2、非结构化异常处理:通过Error对象及On Error、Resume和Error三种语句实现。
         例:
             On Error Resume Next
               Err.Clear
               Err.Raise(33333)
               Err.Description = "您没有输入数字!"
                          MsgBox(Err.Number)
                          MsgBox(Err.Description)
      

  5.   

    学习。。
    顺便问一下debug和release编译得到的版本速度差别大吗?
      

  6.   

    try,catch 也不能滥用,要考虑到效率问题
    debug和release 的速度差异要看程序本身,以及编译时候的优化方式,差别大不大不好说,有的可能很大,有的可能就很小
      

  7.   

    try,catch,如果没有发生异常时对效率几乎没有影响