当在controller中处理客户端发来的数据时,我们会去校验数据,当数据错误时,我们会给客户端返回一个信息,如: export function add (req, res, next) { console.log(req.body) /* 检查合法性 */ try { check(req.body) } catch (error) { return next(error) } var addUser = new Users(req.body) addUser.save((error, dat…
## 统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生. 比较通用的返回值格式如下: ```java public class Result { // 接口调用成功或者失败 private Integer code = 0; // 失败的具体code private String errorCode = ""; // 需要传递的信息,例如错误信息 private String msg;…
Validation 在我们的Struts2中,我们是继承ActionSupport来实现校验的-它有两种方式来实现校验的功能 手写代码 XML配置 这两种方式也是可以特定处理方法或者整个Action的 而SpringMVC使用JSR-303(javaEE6规范的一部分)校验规范,springmvc使用的是Hibernate Validator(和Hibernate的ORM无关) 快速入门 导入jar包 配置校验器 <!-- 校验器 --> <bean id="validato…
前言 本博文主要讲解的知识点如下: 校验器 统一处理异常 RESTful 拦截器 Validation 在我们的Struts2中,我们是继承ActionSupport来实现校验的...它有两种方式来实现校验的功能 手写代码 XML配置 这两种方式也是可以特定处理方法或者整个Action的 而SpringMVC使用JSR-303(javaEE6规范的一部分)校验规范,springmvc使用的是Hibernate Validator(和Hibernate的ORM无关) 快速入门 导入jar包 配置校…
C#不用union,而是有更好的方式实现   用过C/C++的人都知道有个union,特别好用,似乎char数组到short,int,float等的转换无所不能,也确实是能,并且用起来十分方便.那C#为什么没有这个关键字呢?怎么实现这个功能?其实C#只是没有了这个关键字,但是功能是能实现的,而且也是非常方便,并且是安全的.网上有人用StructLayout特性来实现union,也确实是实现了一些功能.比如:C/C++:    union {        unsigned char ch    …
全局统一返回RESTful风格数据,主要是实现ResponseBodyAdvice接口的方法,对返回值在输出之前进行修改.使用注解@RestControllerAdvice拦截异常并统一处理. 开发环境:IntelliJ IDEA 2019.2.2jdk1.8Spring Boot 2.2.2 1.创建一个SpringBoot项目,pom.xml引用的依赖包如下 <dependency> <groupId>org.springframework.boot</groupId&g…
需求介绍 首先服务端分为三层:表现层,业务层,数据层. 请求过来先到表现层,表现层调用业务层,然后业务层调用数据层. 那么数据层出现异常它会抛出异常,那异常肯定是抛给调用者也就是业务层,那么业务层会再抛给表现层,所以无论是哪个层次的异常最终都会汇总到表现层. SpringBoot 给的解决方案是在项目的某一个特定的路径下(templates 目录下 error 下放 404.html 以及 500.html)加上对应特定错误状态的页面(一定是错误状态码的文件名)那么在发生错误的时候就会跳转到该页…
GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成GUID的API.生成算法很有意思,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可能的数字.GUID的唯一缺陷在于生成的结果串会比较大. GUID永远是方便的对于程序开发的各个方面,.NET Framework简化了建立和处理GUID数值的过程.在.NET程序需要的地方,这一功能很容易地生成唯一的数值.------------1.Guid.NewGuid().ToString("…
通过HttpModule来捕获未处理的异常[推荐] 首先需要定义一个HttpModule,并监听未处理异常,代码如下: public void Init(HttpApplication context) { context.Error += new EventHandler(context_Error); } public void context_Error(object sender, EventArgs e) { //此处处理异常 HttpContext ctx = HttpContext…
通过HttpModule来捕获未处理的异常[推荐] 首先需要定义一个HttpModule,并监听未处理异常,代码如下: public void Init(HttpApplication context) { context.Error += new EventHandler(context_Error); } public void context_Error(object sender, EventArgs e) { //此处处理异常 HttpContext ctx = HttpContext…
在springboot项目,报错有着默认的提示,这篇文章介绍一下如何统一处理异常. 新建项目,pom文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sc…
WPF MVVM UI分离之<交互与数据分离>   在我们使用WPF过程中,不可避免并且超级喜欢使用MVVM框架. 那么,使用MVVM的出发点是视觉与业务逻辑分离,即UI与数据分离 诸如下面的问题: 删除操作,假如需要先执行一部分数据的处理,然后删除界面列表中的子项,之后再执行其它数据的处理.请问此业务该放置于Xaml.cs文件,还是ViewModel中呢? 再如弹窗,提示框,设置列表的滚动等等. 此上一些操作,我们不应该把业务代码直接挪到cs文件中,因为删除操作绝大部分的代码都是数据的处理.…
//@ExceptionHandler和@ControllerAdvice统一处理异常//统一处理异常的controller需要放在和普通controller同级的包下,或者在ComponentScan的包下.在处理异常的时候可以使用System.out的方式,也可以使用logger.info,或者可以入到数据库中.…
Windows下的Nodejs npm路径是appdata,担心安装的node_modules越来越多,导致C盘满,所以参考别人的博文,将node_modules安装的默认目录修改一下. 参考Windows 系统下设置Nodejs NPM全局路径的介绍. 修改nodejs的安装目录中找到node_modules\npm.npmrc文件,修改为: #prefix=${APPDATA}\npm prefix=D:\tools\node_global cache=D:\tools\node_globa…
rest(Representational State Transfer):表现层状态转化,它是一种风格,用于资源定位,例如:http://ip:port/user/student/001 和资源操作:http的GET,POST,PUT,DELETE四种操作分别对应数据库的select,update,insert,delete                                  资源(Resources):网络上的一个具体信息.它可以是一段文本.一张图片,总之就是一个具体的实在,你…
前言 1>每个人的代码风格不一样,以至于代码各式各样,有习惯=号左右加空格的,有习惯不加的,此举有时还会影响svn提交代码 2>注释代码不一样,并且注释风格也不一样 统一文件编码和代码风格 效果代码(快捷键自动生成,保存自动格式化): package com; /** * * 类名:Test1.java * 类说明: * Copyright: Copyright (c) 2012-2015 * Company: HT * @author wangHao * @date 2015年5月12日 *…
RestFull风格就是url路径中不能出现?不能带参数,如https://www.baidu.com/user/item/1234这个格式,也叫url资源定位 1.需要在web.xml中开启put,和delete的支持 <!-- 浏览器不支持put,delete等method,由该filter将/xxx?_method=delete转换为标准的http delete方法 --> <filter> <filter-name>hiddenHttpMethodFilter&…
在后端发生异常或者是请求出错时,前端通常显示如下 Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Fri Jun :: CST There was an unexpected error (type=Not Found, status=). No message available 对于用户来说非常不友好. 本文主要讲解…
本文主要讲解NetCore如何使用中间件捕获模型绑定的异常信息 场景 在.NET Core 中请求中,如果参数的类型错误,我们在控制器的定义的方法是不会执行的,当我们需要捕获模型绑定的异常信息时,可以使用ApiBehaviorOptions..接下来通过一个小demo给大家讲解一下用法 实现代码 public static void ConfigureModelBindingExceptionHandling(this IServiceCollection services) { service…
重构的乐趣在于精简代码,模块化设计,解耦功能……而对异常处理的重构则刚好满足上述三个方面,下面是我的一点小心得. 一.相关的学习 在文章<精简自己20%的代码>中,讨论了异常的统一处理,并通过对异常处理的封装达到精简代码的目的.具体有两种处理方法: 方法1:封装一个包含try{}catch{}finally{}的异常处理逻辑的方法类,将别的方法作为参数传入该方法,在页面内调用封装后的方法,大体代码如下: public class Process { public static bool Exe…
重构的乐趣在于精简代码,模块化设计,解耦功能……而对异常处理的重构则刚好满足上述三个方面,下面是我的一点小心得. 一.相关的学习 在文章<精简自己20%的代码>中,讨论了异常的统一处理,并通过对异常处理的封装达到精简代码的目的.具体有两种处理方法: 方法1:封装一个包含try{}catch{}finally{}的异常处理逻辑的方法类,将别的方法作为参数传入该方法,在页面内调用封装后的方法,大体代码如下: public class Process { public static bool Exe…
前言: 我们在实际项目开发中,经常会遇到一些不可预见的异常产生,有的异常在程序运行时就对其进行处理(try)但是,有的程序不需要每一个地方都用try进行处理,那么针对这种情况,可以参照下面的方式,实现对异常的统一抓取处理 方式一.Page_Error处理页面级未处理异常 作用域:当前的.aspx页面 描述:在需要处理的aspx页面的cs文件中,实现Page_Error方法,达到侦听当前页面未处理的异常 protected void Page_Error(object sender, EventA…
在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler.@InitBinder.@ModelAttribute,并应用到所有@RequestMapping中.@ControllerAdvice官方文档.创建全局异常处理类:通过使用@ControllerAdvice定义统一的异常处理类,而不是在每个Controller中逐个定义.@ExceptionHandler用来定义函数针对的异常类型,最后将Exception对象和请求URL映…
在senparc中实现了AccessToken的全局获取方式,因微信项目涉及跨语言.跨团队,外包方式的合作,需要通过接口方式供合作方调用,现将使用webapi实现的接口分享给大家: 1.自定义一个对外统一的AccessToken /// <summary> /// 自定义一个对外统一的AccessToken /// </summary> [Serializable] public class MPAccessTokenInfo { /// <summary> /// 获…
全局对象:javascript中的一个特殊对象 全局变量:该特殊对象及其所有属性 该对象为:在浏览器javascript中,为window:在nodejs中,为global(所有全局变量都是global对象的属性) 全局对象与全局变量 global最根本的作用就是作为全局变量的宿主.满足以下条件的变量是全局变量: 在最外层定义的变量: 全局对象的属性: 隐式定义的变量(未定义直接赋值的变量). 当定义一个全局变量的时候,这个变量同时会变成全局对象的属性,反之亦然. 注: 1.在nodejs中不可…
转载:http://www.csframework.com/archive/1/arc-1-20150109-2193.htm 服务端增加WCF服务全局异常处理机制,任一WCF服务或接口方式出现异常,将统一调用WCF_ExceptionHandler.ProvideFault方法,因此不需要每个方法使用try catch写法. C# Code: /// <summary> /// WCF服务端异常处理器 /// </summary> public class WCF_Excepti…
并非所有的异常都需要 try-catch 进行重复的处理,这会导致大量的重复性代码,一旦后续系统出现异常处理机制的修改,随着代码量增多,修改也会变的更加困难. ASP.NET Web API 中特别增加了全局异常过滤器功能,诸如于此的还有很多过滤器可供开发者选择,以实现面向切面编程,它们在取代重复性编码这一目标的路上,作出很多贡献,同时降低了后期维护代码的难度,提升了可读性. 大多数异常处理的 try-catch 都通常是同样的写法(记录异常日志.返回错误信息等),因此我们可以将他们统一写在一个…
https://blog.csdn.net/zzzgd_666/article/details/81544098(copy) 详细看此 所以结合上面我们可以知道,使用@ExceptionHandler,可以处理异常, 但是仅限于当前Controller中处理异常, @ControllerAdvice可以配置basePackage下的所有controller. 所以结合两者使用,就可以处理全局的异常了. 这里需要声明的是,这个统一异常处理类,也是基于ControllerAdvice,也就是控制层切…
1.自定义统一异常处理器 自定义Exception实现 HandlerExceptionResolver接口或继承AbstractHandlerExceptionResolver类 1.实现接口HandlerExceptionResolver ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45…
创建业务 Exception 一般在实际项目中,推荐创建自己的 Exception 类型,这样在后期会更容易处理,也比较方便统一,否则,可能每个人都抛出自己喜欢的异常类型,而造成代码混乱 ServiceException 用于抛出业务逻辑校验异常 UnauthorizedException 用于抛出用户未登录异常 可根据自己的项目需求变化,但简单项目中这两个已经够用 ServiceException package cn.myesn.exception; public class Service…