SpingMVC拦截器-异常处理的思路,用户体验不好的地方

1、异常处理机制

1.1 原先我们的异常都是手动的try..catch() 

2、他存在着一些缺陷:这里创建了一个Demo的controller,内部有一个show方法:

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第1张图片

3、访问内部,我要实现demoshow方法,我们来调用show1和show2的方法:

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第2张图片

4、有一个DemoSerive方法:在这个DemoSerive实现当中有一个show1的方法:方法内部比较简单,就是造异常

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第3张图片

5、在我们show哪里有一个DemoSerive

5.1 在serive内部有一个show1的方法:

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第4张图片

6、这里方法内部比较简单,其实就是造异常,作死,字符串转成数字,那肯定是报错,报什么异常,报一个类型转换异常。 

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第5张图片

6.1 后面还有其他作死异常

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第6张图片7、第五个异常,我手动抛一个空指针异常

8、自己定义一个异常,在这个包里定义异常:

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第7张图片

9、原先在框架阶段,我们都是怎么处理异常的,基本上都是try catch

9.1

10、耦合到一起了

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第8张图片

11、这里产生了一个新的概念,能不能将这个异常抽取出来

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第9张图片

12、利用某一个组件执行找不到的组件

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第10张图片

13、异常处理的思路-------预期异常和运行时的异常

13.1 

14、往上抛

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第11张图片

15、他的异常处理思路:

15.1今天咱们的学习主要围绕着这个绿色的方框展开工作:如果是springMVC我编好了,咱们得控制,如果springMVC没给我,我自己能定义

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第12张图片

16、异常处理的两种方式:下面的汉语翻译是简单的映射处理器:

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第13张图片16.1 如果你出一个错误2,我跳一个错误2页面,如果错误三,我跳一个错误3页面:上面是异常跟页面跳射的映射关系:这是上面的核心

17、我自己定义一个异常处理器的接口:我内部可以做相应的代码操作:

17.1

18、简单异常处理器,这些东西我到底应该怎么配置:配异常和视图的一种映射配置:你比如换一家异常的,这个地方就配个bean

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第14张图片

18.1 他内部就指定几个配置:error就是视图名称

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第15张图片

19、如果展示的视图:展示的视图是abc就行 

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第16张图片

19.1 因为我是配置内部视图解析器:

20、如果你配的异常,跟我们下面所配的异常都不匹配,就会去走下面这个:

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第17张图片

21、说完这个,再说下面这个:

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第18张图片

22、往error里面去跳:

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第19张图片

23、如果是类转化异常,也往error里去跳:

---------24、用户体验不好的地方:出现了这个,下次不去你网站买东西了,用户体验不好,即使是网络异常,也给一个友好的用户提示,网络异常,请找管理员等等

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第20张图片

24.1下面如何实现友好提示:先给他配置一下:先配一个简单的异常处理器:simMapper---

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第21张图片

25、内部配东西,我先配个默认的:

26、我配个error原因是在web页面下,没有这个error,建一个

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第22张图片

26.1 弄一个error页面:

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第23张图片

27、效果,错误还存在不过再次输入路径跳转到这个页面了:这个可以写的好看一点,找到exceptingMappers

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第24张图片

28、这里再重新写一下,找到exceptionMapping,异常映射

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第25张图片

 

28.1

29、这里有一个Map,里面配异常,配那些异常,entry

1811​​​​​​​03-SpringMVC异常处理-简单异常处理器_哔哩哔哩_bilibili

29.1 entry,key是业务名称

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第26张图片

 29.2 业务名称是,我刚才在业务层抛异常

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第27张图片

29.3 这是类转换异常:

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第28张图片

 29.4 给他写一个key

29.5 选中右键copy

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第29张图片

 29.6 这叫类型转化异常,不过你得往哪跳呢

 29.7 value值代表着往哪跳,你可以在这里多建几个:

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第30张图片

 SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第31张图片

 29.8 再多建几个异常

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第32张图片

 29.9 我这里有一个自定义异常,我在这里调用show5的时候,咱看一下这个show5方法:

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第33张图片

 29.10 这个是自定义的,这个给copy一下:

 29.11 如果报这个错误,我就让你去访问这个error2页面,重启一下

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第34张图片

 29.12 此时我再去访问:这里调用的是show1方法,如果想调用show2方法,就要换一个方法

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第35张图片

 29.13 在控制器中切换show方法5

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第36张图片

 29.14 此时爆异常报那个

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第37张图片

 29.15 页面会进行匹配,匹配那个成功,就往那个页面进行跳转

30、效果

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第38张图片

 

-----------自定义异常处理步骤,简单映射处理器是spring帮我们配好的,我要用这个配置: 自定义异常处理比刚才简单映射处理器就是多了一步:

31、第一步创建一个异常处理器

31.1、第二步配置,我得让spring容器知道,我有真么一个异常处理器控制机制:

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第39张图片

32、在com.itheima下面创建一个package

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第40张图片

32.1 建一个resolver的包

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第41张图片

 32.2 创建一个新的类:这个类就是我的异常处理器

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第42张图片

 32.3  创建好之后,我们要干什么,接入一个exception接口

 32.4 把未处理的异常给处理一下,resolve

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第43张图片

32.5 这里会把异常对象,给你封装到这

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第44张图片

 32.6 不同异常可以返回不同操作,最后返回一个ModelandViewSpingMVC拦截器-异常处理的思路,用户体验不好的地方_第45张图片

  32.7 这里比较关键的是我们的exception对象,他是你爆异常的异常对象

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第46张图片

 32.8 跳转的错误的视图信息

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第47张图片

 32.9 我们刚才的demo有很多的异常:比如有这个类转换异常

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第48张图片

 32.10 这里有我们自定义的异常,我有什么MyE,当前的异常是不是我的自定义异常 

33、如果是自定义异常,我就返回一个ModelAndView

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第49张图片

34、如果是类转化异常,最后返回一个视图:

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第50张图片

34.1 非往域中添加异常、

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第51张图片

35、第一步实现接口,覆盖方法

36、第二个叫配置

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第52张图片

37、你到底什么异常,往哪跳,我在逻辑内部就已经知道了

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第53张图片

37.1 现在你知道放到容器内部执行就行了

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第54张图片

38、找到我们的springMVC

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第55张图片

38.1 编写我们的自定义处理器

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第56张图片

 38.2  把他发布一下

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第57张图片

39、取一下info的数据

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第58张图片

39.1

40、成功取出信息,这里我在自定义的异常处理器当中

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第59张图片

 

41、执行这里的逻辑

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第60张图片

42、再有异常怎么着,往上抛

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第61张图片

 

42.1   -----------------SpringMVC知识要点

SpingMVC拦截器-异常处理的思路,用户体验不好的地方_第62张图片

你可能感兴趣的:(springBoot,ux)