以前虽然也看过Response.Redirect的参数说明,但是印象一直不深刻,后来由于很少做web项目,也从没想过遇到这样问题。
以前的时候,写跳转,是在Page_Load里这样写:
Response.Redirect(xxx);
这次由于要做一个跳转页,同时因为winform开发经验多了,在Page_Load里这么写:
try
{
Response.Redirect(xxx);
}
catch(Exception ex)
{
Response.Redirect(xxx);
}
PS.winform的线程一旦多起来,在线程里创建form出现错误,只会引发线程异常,不影响主线程,所以错误不会报出来,必须自己处理,保证线程安全。另外,这种写法不需要再做n多的为null或者类型转换错误等判断,只需要在try里执行正确的流程,流程的意外在一个个catch里处理。
结果,页面总跳向catch里边的地址,设置断点想查看ex的详细信息,也是什么都没有。后来想将异常扔出,故在catch里加上了throw ex,结果最终的反而执行对了。后来设置了页面级Exception,然后在catch里将ex赋值,然后才能看见这个异常信息,写的是stact 。。。on top等等。
百思不解下,google一下,不知道是不是由于国人很少写try{}catch{},搜索到的页面直接就是E