如果外边不处理就try catch,如果外边统一处理就throws ,再说如果函数强制捕获异常的话,你只能这2种选一种,你以为你写死就不会有问题,是不行,即使你写的是对的,也可能出现网络连不通等原因,导致程序出异常

解决方案 »

  1.   

    项目里面自定义一个AppException,每次就抛出这个异常。统一管理。
      

  2.   

    需要上层程序调用就把错误往上抛,只是做个一个简单的url就try catch自行处理吧。
      

  3.   

    如果我要下载,可能抛出SocketTimeoutException之类的。但我现在考虑的是MalformatedException。请问我应该声明MalformatedException,还是在本级处理?
      

  4.   


    请问在这两种情况下你会如何设计?1.
    void downloadPage()
    {
        URL url=new URL("http://www.google.com");
        do(url);
    }2.
    void downloadPage(String urlString)
    {
        URL url=new URL(urlString);
        do(url);
    }
      

  5.   

    如果上一层没做处理异常的,就在这层用try catch然后什么都不写
      

  6.   


    请问在这两种情况下你会如何设计?1.
    void downloadPage()
    {
        URL url=new URL("http://www.google.com");
        do(url);
    }2.
    void downloadPage(String urlString)
    {
        URL url=new URL(urlString);
        do(url);
    }
    对异常的处理方式与你给URL传参数还是常数没有关系,你传一个合法的URL常数,也有可能抛异常的啊。比如网络不同,对方url服务器故障等等很多原因都可能导致异常。主要看上级调用函数需不需要知道这个异常,如果需要知道,那就应该往上抛,如果不需要,那就可以直接在这里处理。
      

  7.   

    你说“不可能抛出”,也就是说,“如果抛出,那就是严重的程序bug”,
    所以 try - catch  然后在 catch 块中 log,封装成合适的类型的 RuntimeException 抛出。这件事说明 URL 的构造方法,以及 MalformatedException 都是很糟糕的设计。见我之前发的帖子: http://bbs.csdn.net/topics/390640865
    “如果你发现自己在代码中频繁的 catch 一个检查异常,然后转换抛出一个非检查异常,那这个检查异常的设计多半有问题。”
      

  8.   


    楼主,这么说吧,如果你讲异常声明出去,就是告诉将由jvm来处理,但是如果你用try,就表示,当前这个异常有你自己处理就好比,这个问题你没解决,你丢给你组长,你组长也没解决,你组长有丢给项目经理一样,但是最后还得有个人来解决的对吧,所以看这个问题在你这里解决还是丢出去。
      

  9.   


    请问在这两种情况下你会如何设计?1.
    void downloadPage()
    {
        URL url=new URL("http://www.google.com");
        do(url);
    }2.
    void downloadPage(String urlString)
    {
        URL url=new URL(urlString);
        do(url);
    }
    对异常的处理方式与你给URL传参数还是常数没有关系,你传一个合法的URL常数,也有可能抛异常的啊。比如网络不同,对方url服务器故障等等很多原因都可能导致异常。主要看上级调用函数需不需要知道这个异常,如果需要知道,那就应该往上抛,如果不需要,那就可以直接在这里处理。
    原来是这样啊!我仅仅是构造一个url对象,你就断言这个new的操作会因为对方服务器问题而失败?那好,我new URL("http://www.fakeyou.me")。我刚刚试了下并不存在这个网站,所以java会在调用这个构造函数的时候抛出异常?我没告诉你我用这个url对象干什么,如果仅仅想要把它打印到屏幕上,也会在构造这个url对象的时候抛出异常?
      

  10.   

    1、不管你的代码对不对,都要写异常的。
    2、不管是throws ...Exception,还是try...都要对异常进行出来。
    只不过throws...Excetion是将异常处理放在外面,即由调用这个方法时,进行异常处理,最终都得写成try...