如题,在我的 C# 项目中,我想抛出一些异常信息。但是,如果直接把异常信息用 string 抛出,感觉代码里到处都是异常信息的句子。
所以,我想自定义一个异常类型,然后我代码里面需要抛出一个异常的时候,就抛出一个 int 类型的异常。
最后在最顶层的时候,我只需要通过 int 类型的异常,查询下错误信息记录下来即可。求高手指点下,或者有更好的建议也行。最好是代码示范下!感谢~~

解决方案 »

  1.   

    你这不就是ErrorCode吗?
    你可以自定义个Exception,然后这个Exception可以在Message的基础上,增加ErrorCode的支持
      

  2.   

    对,对,就是这个意思。版主,能不能帮忙写个小demo看下,越精彩越好,对于C#异常的抛出一直很纠结,包括何时该抛出异常不用返回值,何时不该抛出异常用返回值等等。
      

  3.   

    跟ErrorCode可能还是有点不一样,这个是直接抛出ErrorCode,然后在顶层可以通过捕获ErrorCode,查询异常信息。
      

  4.   

    你看一下 HttpStatusCode  这是一个 http状态的枚举。
      

  5.   

    直接抛出 int 类型的异常是不被允许的,但要抛出一个自定义异常携带 int 类型的字段是可行的。
    基于指令长跳转(long goto)的伪 try-catch 实现是允许的(C语言主要采取此办法)dotNET 
    并不禁止开发 人员调用“setjmp”、“longjmp”函数进行长跳转,只是由于 dotnet 本身的特
    性,它存在一些潜在崩溃风险,(GC移动内存后,可能会内存不可读)
      

  6.   

    异常是 Exception 的子类就行了,你可以自定义一个异常,然后添加一个 int 类型的属性。