java代码中经常碰到各种需要处理异常的时候,比如什么IOException  SQLException  NullPointException等等,在开发web项目中,遇到异常,我现在做的就是将其抛出,即在catch中throw new Exception()。这个throw new Exception也是有讲究的。

贴出异常简略图:
 
异常就分两大类:checked检查和unchecked非检查异常。
checkedException在编写代码的时候就必须要进行异常处理,uncheckedException在编写代码时可以不用处理,因为它是在程序运行时才可能会抛出异常。
 
 
拖拽可看大图。
 
一段代码中,可能会抛出多个异常,这就涉及到多重异常。这时对异常的处理就有点讲究了。
总的说来,如果异常间存在继承关系,则应该先把小异常放上面,越大的越写在后面。如果一开始就处理最大的异常,则它下面的子类在编译器中都会报错。如:
    StringBuffer sb=null;
        try {
            sb.append("1");
            System.err.println(sb.toString());
        } catch (RuntimeException e) {
            e.printStackTrace();
        }catch (NullPointerException e){
            e.printStackTrace();

}

在编译器中会给出如下错误:
Unreachable catch block for NullPointerException. It is already handled by the catch block for  RuntimeException
 NullPointerExeption无法捕获,因为已经在RuntimeException中捕获了。
 
处理异常时,必须提到异常转换和异常链。
 
异常链
 
重写方法时需要注意与原方法所抛出的异常类型一致或者是其子异常,或者不抛出异常,亦或者抛出RuntimeException异常。
 
 
异常设计的基本原则:
 
开发web项目时,遇到400,404,500等问题时,可以通过在web.xml中设置相关属性,即可跳转到指定页面
    <error-page>
        <error-code>400</error-code>
        <location>error.jsp</location>
    </error-page>

     <error-page>
         <error-code> 500 </error-code>
         <location> error.jsp </location>
     </error-page>
 
    <error-page>
         <error-code> 405 </error-code>
         <location> notfound.jsp </location>     
    </error-page>

java异常处理及400,404,500错误处理的更多相关文章

  1. apache 网页301重定向、自定义400/403/404/500错误页面

    首先简单介绍一下,.htaccess文件是Apache服务器中的一个配置文件(Nginx服务器没有),它负责相关目录下的网页配置.通过对.htaccess文件进行设置,可以帮我们实现:网页301重定向 ...

  2. HTTP状态码,400,404,500,503

    HTTP状态码(HTTP Status Code) 一些常见的状态码为: 200 - 服务器成功返回网页 400 服务器不理解请求的语法 404 - 请求的网页不存在 503 - 服务不可用 所有状态 ...

  3. 网站404,500错误页面的处理,及500异常写入errorLog日志

    1.web.xml 配置 <error-page> <error-code>404</error-code> <location>/404.jsp< ...

  4. Tomcat 禁用PUT方法, 404/500错误重定向, 网站图标

    (1) Tomcat禁用Put等不安全方法. <security-constraint> <web-resource-collection> <web-resource- ...

  5. 【thinkphp 5 在nginx 环境下路由无法生效(404 500错误 )的解决方法】

      非常惭愧的说,由于之前一直使用的是windowservice,安装apache来进行服务器布置的,这种方式也是最简单最直接的方式, 但是由于php的服务大多都是linux栈的,咱们也不能落后呀,在 ...

  6. springmvc框架通过web.xml配置404 500错误导向页

    总不能用户输错了url就弹 这玩意吧? <error-page> <error-code>404</error-code> <location>/WEB ...

  7. Tomcat更改错误页面指向,改变404,500错误页面

    在公司工作了一段时间,也被安排做了一个App,而且后台也是我来写和布置的,由于一次安全检查,需要我把tomcat默认页(管理页面)关闭,于是我只能进行默认指向变更,但是后面我又想到要是用户输入不存在的 ...

  8. 远程服务器返回错误: 404错误、远程服务器返回错误:500错误、 HttpWebResponse远程服务器返回错误:(404、500) 错误。

    现象 我们编码实现请求一个页面时,请求的代码类似如下代码: HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strUrl);req.Use ...

  9. 在Tomcat中配置404自定义错误页面详解

    这篇文章主要介绍了在Tomcat中配置404自定义错误页面全解,需要的朋友可以参考下 一直使用tomcat,今天想到一个问题,自定义404错误页面, 为了获得很好的用户感受,是不应当向用户暴露404这 ...

随机推荐

  1. 火狐浏览器不支持location.reload()(以改变页面大小时重新刷新页面为例)

    背景:当页面大小改变时需要重新刷新页面,以适应相应的尺寸 解决方法: var url = window.location.href; var parm = parseInt(Math.random() ...

  2. CF Gym 100187E Two Labyrinths (迷宫问题)

    题意:问两个迷宫是否存在公共最短路. 题解:两个反向bfs建立层次图,一遍正向bfs寻找公共最短路 #include<cstdio> #include<cstring> #in ...

  3. 关于java字符串常量池

    今天发现一个好玩的东西 public static void main(String[] args)    {        String str1 = new StringBuilder(" ...

  4. Python-DDT实现接口自动化

    Get请求参数化例子 import unittest import requests import ddt @ddt.ddt class MyTestCase(unittest.TestCase): ...

  5. ajax的序列化表单提交

    通过传统的 form 表单提交的方式上传文件 ? 1 2 3 4 <form id="uploadForm" action="" method=" ...

  6. EWS code return Error : Request failed. The remote server returned an error: (403) Forbidden OR (401) Unauthorized

    Following is my code. ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1 ...

  7. Bootstrap历练实例:堆叠的进度条

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  8. python class 巩固

    class 类定义 语法格式如下: class ClassName: <statement-1> ... <statement-N> 类属性与方法 属性 操作属性 getatt ...

  9. Seek and Destroy-freecodecamp算法题目

    Seek and Destroy(摧毁数组) 要求 实现一个摧毁(destroyer)函数,第一个参数是待摧毁的数组,其余的参数是待摧毁的值. 思路 利用for循环将输入arguments中除第一项待 ...

  10. 洛谷 P1593 因子和

    https://www.luogu.org/problemnew/show/P1593#sub 利用约数和定理:可以去看一下公式第13条 然后这个题目的话,要求$a^b$,那么我们首先可以先将a分解然 ...