我们知道,有些语句是有可能抛异常的,用trycatch语句可以抓到,但VS压根不提示哪些语句有可能抛异常
能不能让他提示?
可以参照下java,如果一方法标明可能抛异常,那么调用方,要么trycatch,要么也同样标明自己会抛异常,不然编译不通过。

解决方案 »

  1.   

    是没这功能,Java 虽然标明了,但是限制了异常的种类,有些场合得不偿失
      

  2.   

    干啥都可能抛异常,比如CPU过热可能产生访问越界,难道每段代码都标记么?
      

  3.   

    能不能做个函数的方法,所有函数统一自动加上
    public void fun()
    {
      try
                {
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.ToString());
                }
    }
      

  4.   

    java的异常分位Runtime Exception和Caught Exception, 
    RuntimeException不需要显式声明throws语句, 但Caught Exception必须显式声明throws或则被catch..net的异常处理机制稍有不同, .net没有java里所谓的Caught Exception, 
    因为.net认为Exception是异常, 是无法预知的, 能预知的Exception应该在发生后就该被fix, 而不是catch处理.  理念不同.
      

  5.   


    在.net中,异常是一个“泵”机制,如果你不trycatch那么它就会自动继续抛出。才不像(你所说的java)那样低级地把异常给丢失了呢!
      

  6.   

    试想一下,catch(Exception ex)
    {
        throw ex;
    }这种代码难道不是天底下最大的蠢材才能写出的代码吗?!难道这就是java?
      

  7.   

    我不想说什么,因为你对java的throws的理解就是错的。
      

  8.   

    呵呵,越来越搞笑了,我问“有没有这功能”,都又扯到“java和.net”了,着实可笑。
    在下也说两句,敢问兄台可学过java?可用过struts2?举个例,Struts2里头有个东西叫Action,Action里边即使存在强制捕捉的异常,照样不会提示,因为Action父类的方法上就已经添加了throws Exception,同样可以做到你们所说的“方便”
    加上throws Exception的方法,一样可以“泵”,知道不,意思是:“本方法不处理,谁调用‘我’谁去处理”。java居然还会丢失异常,头回听说。
    至于7楼sb1234所说的的代码那当然是白痴才能想得出来的咯,java怎么可能是这样!
    言归正传,说我的帖子,我的意思是,我遇到了这样的情况:
    我要用串口通讯,通讯时可能会有异常吧,串口线断开等外界因素(注:忽略CPU过热可能产生的访问越界)。除了提示用户通讯失败之外,我想把错误的原因记录到日志中,以便日后维护,可问题是,我怎么才能知道哪些方法会造成通讯失败?别告诉我查MSDN,我想让VS主动通知我,能不能做到?要是不能,有没有什么好办法找到这些可能异常的方法?
    声明:我主要是C和java,C#是公司偶尔缺人维护,打酱油的。各位好汉,若是理解了我的问题、愿意帮助我,请您不吝赐教,在下万分感谢;若是继续纠结java好还是C#好、异常到底有没有必要捕获,请你绕道,另外开贴讨论