首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

否页面中每个对象都亟需判断是否为null

2013-11-08 
否页面中每个对象都需要判断是否为null?net 开发webform,想请教一下各位:是否页面中每个对象都需要判断是

否页面中每个对象都需要判断是否为null?
  net 开发webform,想请教一下各位:是否页面中每个对象都需要判断是否为null?
  假设有一个页面,页面上显示的是一个课程的信息,比如课程介绍,开课时间,课程教师,课程图片等等课程对象属性的信息,浏览器的地址栏中一定会有一个课程的id。如果在地址栏中输入一个不存在的课程的id,那么这个时候代码中应该作何处理,我觉得:
    1.如果对象不为空,则读取信息,若为空,则不读取。这样的话,页面中需动态读取信息的地方都是空白的,只有静态信息。
    2.若对象不存在,则直接跳转到404页面。
    3.若对象不存在,则默认读取一个一定存在的对象的信息。
    4.若对象不存在,则返回到课程列表页之类的页面。
  但是,我看我们公司的很多代码都不作判断,直接读取对象的信息,然后在配置文件中配置个404,于是,你在浏览器中输入一个不存在的课程的id,直接跳转到404(代码出错了,跳转的,不报黄页而已),这样处理能行吗,我总觉得这样子不行啊,这应该是代码中的错误啊。
  各位大牛都是怎么处理这种情况的,是不是都应该判断一下对象是不是为空啊,还是有一些别的更好的方法? asp.net C# web null
[解决办法]
5 不存在 显示不存在本页呀
[解决办法]
那样处理也是可以的,不能算是代码错误,因为前提是URL中的id本身就是不存在的(url不正确)导致的,所以判定为404是合理的
一般出现这种情况会用你说的2或4,4的跳转还得说明出错的原因
[解决办法]
可以在程序里进行异常捕获,细化异常(捕获多种类异常),并且在catch中分别进行处理(跳转、返回等)。
[解决办法]
em:


            try
            {
                //对对象的操作
               }
            catch (NullReferenceException nrex)
            {
                //对象为空的时候怎么处理
               }
            catch(ObjectDisposedException odex)
            {
                //对象被释放了你还去操作怎么处理
               }
            catch(Exception ex)
            {
                //什么都不是的时候怎么处理
               }

[解决办法]
1.判断是否为null是很重要的,不管采用那种方式做结果显示。任何异常对系统都是有影响的。
2.不要轻易使用 try?catch .catch部分性能消耗非常大.如果只是用在null判断这种常见事物上,明显对性能的影响极高.
在做转换或者tostring之前 多做一个判断不会让你废太多事。
3.可以考虑写StringExtension自己写扩展方法,节约你每次都写判断的需要 

 if (string.IsNullOrEmpty(str))
            {
                return "";
            }
            return str;

4.一般情况都会用你说的第2种方法处理,这点你可以试试CSDN上面的ID自己随意打打。但第4种方式也会去使用。各看各的了

热点排行