2020年5月21日星期四

异常Exception(四 完结)

异常Exception(四 完结)


  1. 异常有可能导致某些资源没有释放到,这时可以使用using或者finally来释放资源。
  2. 有些异常的可能会间歇性的发生,不影响业务运行的,可以视为正常的逻辑,那在异常可能发生前,应该使用判断逻辑。
    if (conn.State != ConnectionState.Closed){ conn.Close();}

    如果你觉得该异常基本不会发生,那就不用判断了,让它自己抛出来吧。

    见仁见智吧!!!

  3. 在设计一个类、一个方法、一个属性时应尽可能避免异常。有时候可以通过返回默认值或null来避免异常的发生。

     

     

     

     

     客户端获取到null,可以提示用户,服务尚未启动。

  4. 在.net中实在找不到合适的异常,才自定义。属性(属性实际就是字段的封装方法,语法糖罢了)或方法调用不适当,则会引发 InvalidOperationException 异常。
    无效的参数,则引发 ArgumentException 异常或从 ArgumentException 派生的一个预定义类。
  5. 自定义异常,最后要有这三个构造函数
    • Exception()(使用默认值)。

    • Exception(String),它接受字符串消息。---->Message

    • Exception(String, Exception),它接受字符串消息和内部异常。 ----->第二个参数就是InnerException

  6. 跨程序访问时要注意异常的可访问性,例如A程序访问B程序,B程序返回了一个异常,这时要保证A程序可以识别该异常。(怎么识别呢?A程序和B程序都有这个异常的dll或者...)

没有评论:

发表评论