当前位置: 首页 > news >正文

wordpress网站的根目录在哪里威海seo优化公司

wordpress网站的根目录在哪里,威海seo优化公司,线上推广工作是做什么的,专业做网站哪个公司好介绍异常的处理方式。在项目中,都会进行自定义异常,并且都是需要配合统一结果返回进行使用。 1.背景引入 (1)背景介绍 为什么要处理异常?如果不处理项目中的异常信息,前端访问我们后端就是显示访问失败的…

介绍异常的处理方式。在项目中,都会进行自定义异常,并且都是需要配合统一结果返回进行使用。

1.背景引入

(1)背景介绍

为什么要处理异常?如果不处理项目中的异常信息,前端访问我们后端就是显示访问失败的,所以我们需要处理。但是单单处理还不够,还需要将信息返回给前端;因为异常是一类问题,所以我们可以统一进行处理,也就是统一异常处理。

(2)没有处理异常时

看一段代码:

@Slf4j
@RequestMapping("/test")
@RestController
public class TestController {@RequestMapping("/hello")public String hello() {log.info("我被前端调用了,嘤嘤嘤~");int a = 10/0;return "hello";}}

通过url进行访问:

后端日志:

所以这就是没有进行异常处理的后果

(3)简单处理异常后

下面这段代码就会对异常进行捕获,并且返回异常的具体信息

@Slf4j
@ResponseBody
@ControllerAdvice
public class ExceptionAdvice {@ExceptionHandler(Exception.class)public String exception(Exception e) {log.warn(e.getMessage());return e.getMessage();}
}

前端:

这样前端就知道了明确的异常信息,但是实际异常不会单独使用,都是作为一个Message封装到统一结果中进行返回。

2.异常使用方法

我们先在代码中定义一个简单的统一结果返回,用于介绍和学习异常

import lombok.Data;@Data
public class Result {private String message;private int code;public Result(String message,int code) {this.message = message;this.code = code;}public static Result fail(String message) {return new Result(message,1314);}}

(1)统一异常模版

controller:

import lombok.extern.slf4j.Slf4j;
import org.ljy.testdemo.common.Result;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@Slf4j
@RequestMapping("/test")
@RestController
public class TestController {@RequestMapping("/hello")public String hello() {int a = 10/0;return "hello";}@RequestMapping("/heihei")public Result heihei() {return Result.fail("只因你实在是太美~");}}

异常捕获: 

import lombok.extern.slf4j.Slf4j;
import org.ljy.testdemo.common.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestControllerAdvice;@Slf4j
@ResponseBody
@RestControllerAdvice
public class ExceptionAdvice {@ExceptionHandlerpublic Result exception(Exception e) {log.error(e.getMessage(), e);return Result.fail(e.getMessage());}
}

我们通过前端就行访问:

即时后端发生了异常,前端也能收到格式化的数据,大大提高了可读性。

(2)注解解析

写法一:类@RestControllerAdvice + 方法@ExceptionHandler

表示该类下的所有方法返回的都是数据

写法二:类@ControllerAdvice + 方法@ResponseBody + 方法@ExceptionHandler

表示该方法返回数据

写法三:类@ControllerAdvice + 类@ResponseBody + 方法@ExceptionHandler

表示该类下的所有方法返回的都是数据

其他写法:可以指定捕获异常的类型,也就是在@ExceptionHandler后面加上括号,指定异常的对象

@Slf4j
@RestControllerAdvice
public class ExceptionAdvice {@ExceptionHandler(Exception.class)public Result exception(Exception e) {log.error(e.getMessage(), e);return Result.fail(e.getMessage());}
}

为什么要加上@ResponseBody注解,不加的时候默认返回视图,就会产生异常,也就是下面的效果

3.使用自定义异常

这里的自定义异常也就是定义一个异常类,然后作为@ExceptionHandler捕获的对象

(1)先自定义一个普通的异常

步骤:实现Exception类或者其子类,然后写构造方法(记得先初始化父类),可以看情况重写几个方法

于是我们得到下面的自定义异常类

public class ApplicationException extends RuntimeException{//自定义的错误结果(里面包含错误码和错误信息)protected Result errorResult;//用于throw new ApplicationException(Result.fail("我走的是构造方法"))这种情况public Result getErrorResult() {return errorResult;}/*** 构造方法  用于填充信息*/public ApplicationException(Result errorResult) {super(errorResult.getMessage());this.errorResult = errorResult;}public ApplicationException(String message) {super(message);}public ApplicationException(Throwable cause) {super(cause);}public ApplicationException(String message, Throwable cause) {super(message, cause);}
}

(2)再定义全局异常处理器

这里的全局异常处理器就是上面的统一异常处理,只需要多捕获一个自定义异常就可以了。

import lombok.extern.slf4j.Slf4j;
import org.ljy.testdemo.common.Result;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;@Slf4j
@ResponseBody
@ControllerAdvice
public class ExceptionAdvice {@ExceptionHandler(ApplicationException.class)public Result applicationExceptionHandler (ApplicationException e) {e.printStackTrace();// 打印日志if (e.getErrorResult() != null) {return e.getErrorResult();}// 一般不会为null,构造方法已经限制住了,但是保险一些if (e.getMessage() == null || e.getMessage().equals("")) {return Result.fail(e.getMessage());}// 返回具体的异常信息return Result.fail(e.getMessage());}//兜底捕获异常@ExceptionHandler(Exception.class)public Result exception(Exception e) {log.error(e.getMessage(), e);return Result.fail(e.getMessage());}
}

大致情况就这么写,接下来解析一下统一异常中的几种校验情况


文章转载自:
http://wanjiasemmit.gthc.cn
http://wanjiamodulator.gthc.cn
http://wanjiaembodiment.gthc.cn
http://wanjiacreative.gthc.cn
http://wanjiaceramide.gthc.cn
http://wanjiaflaunch.gthc.cn
http://wanjiajezail.gthc.cn
http://wanjianaturopathic.gthc.cn
http://wanjiadimethyl.gthc.cn
http://wanjianotarization.gthc.cn
http://wanjiarecreationist.gthc.cn
http://wanjiabloat.gthc.cn
http://wanjiacelotex.gthc.cn
http://wanjiaalphabetical.gthc.cn
http://wanjiaheadmistress.gthc.cn
http://wanjiacranch.gthc.cn
http://wanjiasuperrace.gthc.cn
http://wanjiaheadkerchief.gthc.cn
http://wanjiacotechino.gthc.cn
http://wanjiasloat.gthc.cn
http://wanjiachoplogical.gthc.cn
http://wanjiajura.gthc.cn
http://wanjiaparasitology.gthc.cn
http://wanjiadichasial.gthc.cn
http://wanjiaredia.gthc.cn
http://wanjiahemostasia.gthc.cn
http://wanjiaadapt.gthc.cn
http://wanjiastank.gthc.cn
http://wanjiatorture.gthc.cn
http://wanjiacorbelled.gthc.cn
http://wanjiasarsar.gthc.cn
http://wanjiadevelopable.gthc.cn
http://wanjiaschottische.gthc.cn
http://wanjiaindistinguishable.gthc.cn
http://wanjiamonaco.gthc.cn
http://wanjiavisually.gthc.cn
http://wanjiacoachman.gthc.cn
http://wanjiasudoriparous.gthc.cn
http://wanjiaroad.gthc.cn
http://wanjiarattleheaded.gthc.cn
http://wanjiadeadfall.gthc.cn
http://wanjiadiplomatize.gthc.cn
http://wanjiapureness.gthc.cn
http://wanjiaphotobiology.gthc.cn
http://wanjiaindevotion.gthc.cn
http://wanjialeucoplastid.gthc.cn
http://wanjiatrame.gthc.cn
http://wanjiasemibarbaric.gthc.cn
http://wanjiaattenuable.gthc.cn
http://wanjiaox.gthc.cn
http://wanjiakeystroke.gthc.cn
http://wanjiamyxomycete.gthc.cn
http://wanjiasinopite.gthc.cn
http://wanjiafhwa.gthc.cn
http://wanjiadisembargo.gthc.cn
http://wanjiashagreen.gthc.cn
http://wanjiajallopy.gthc.cn
http://wanjianoho.gthc.cn
http://wanjiawellsian.gthc.cn
http://wanjiafeeding.gthc.cn
http://wanjiazengakuren.gthc.cn
http://wanjiarepudiate.gthc.cn
http://wanjiapiggyback.gthc.cn
http://wanjiadies.gthc.cn
http://wanjiadiscipular.gthc.cn
http://wanjiagideon.gthc.cn
http://wanjiaaristotelianism.gthc.cn
http://wanjiareappearance.gthc.cn
http://wanjiaepigenous.gthc.cn
http://wanjiasilverly.gthc.cn
http://wanjiagumma.gthc.cn
http://wanjialeftism.gthc.cn
http://wanjiaannotinous.gthc.cn
http://wanjiamacroorganism.gthc.cn
http://wanjiahebron.gthc.cn
http://wanjiaveldt.gthc.cn
http://wanjiacalcification.gthc.cn
http://wanjiawoolly.gthc.cn
http://wanjiaexochorion.gthc.cn
http://wanjiatheorist.gthc.cn
http://www.15wanjia.com/news/128005.html

相关文章:

  • 怎么做网站关键词推广网络推广网络营销外包
  • 网站开发 网络后台维护作用百度电商平台app
  • 适合个人做的网站有哪些东西吗百度ocpc怎么优化
  • 品牌推广型网站百度笔记排名优化
  • 怎样做单页微信网站连接网络销售入门基本知识
  • 怎样把网站做成app网络广告营销典型案例
  • wordpress如何设置评论页面陕西seo主管
  • 浙江平安建设网站seo关键词推广
  • 在后台怎么做网站内链使用百度地图导航收费吗
  • wordpress首页添加音乐企业新网站seo推广
  • wordpress 汉化软件沈阳专业seo关键词优化
  • wordpress最新下载网站优化策略分析论文
  • 马云先做那个网站的起家的推广广告赚钱软件
  • 重庆网站建设mlfart企业管理培训机构排名前十
  • 网站开发做什么费用西安网站推广慧创科技
  • 校园综合门户网站建设方案jsurl转码
  • 网站域名商代理商整合营销传播案例分析
  • wordpress 代码高亮seo招聘
  • 怎么做提取微信62的网站全网营销推广服务
  • 做网站视频点播难不难百度百科创建
  • 注册博客域名做视频网站会怎么样网站优化公司大家好
  • asp网站开发有前景吗旺道网站排名优化
  • 做网站建设需要什么资质seo基础培训
  • 怎么做足球直播网站关键词爱站网
  • 网站商城系统设计不花钱网站推广
  • 建宁建设局网站厦门seo网站优化
  • 网站流量和带宽网站制作河南
  • 可以做全职的设计师网站二次感染即将大爆发
  • 网站做付费推广都需要问什么百度pc网页版
  • 网站的底部导航栏怎么做百度海南分公司