jrwang9
可以的
精慕门7053592
你的代码贴出来
qq_那个女孩在笑i_0
能,后台返回一个流,流里面构建一个HTML模版,404页面或者500页面模板。但是,最好还是前端去判断返回码,并做相应操作。因为前后端职责要明确。
麻了一一一
要强转,要不然怎么获取相应的code和message
ytf
不是效率问题,而是便于统一管理,不必重复判断,程序易读
慕粉4135521
这个是随便定义的啦 你想使用哪个异常定义你选哪个就行了 这个只是一个简单用例而已,当你自己要真正去封装异常的时候你会根据不同的状态码来进行封装的
慕粉2137351520
下面的是我写的异常处理类
有两点你需要注意看下
1.@ExceptionHandler注解填的是Exception.class吗?
2.else分支这里有没有作以处理,再者说了,这里总返回的是Result对象,你前台怎么可能会展现别的格式呢,说明你并没有返回Result对象,你可以试着用debug启动项目,然后打断点跟着程序看看
@ExceptionHandler(Exception.class)
@ResponseBody
public Result girlHandle(Exception e){
if(e instanceof GirlException){
GirlException ge=(GirlException)e;
log.info(ge.getMessage(),ge);
return ResultUtil.error(ge.getCode(), ge.getMessage());
}else{
//因为错误捕获,所以后台没有报错,这里我们通过日志将其打印出来,以便排错
log.info("【系统发生错误】",e);
return ResultUtil.error(-1, "系统发生了错误,请稍后再试,或联系管理员");
}
}
每步都有祝福
不粘代码 谁知道...
慕侠0830918
可以是可以,本质上没有区别,只是为了代码的整洁和优雅,举例来说:
常量:
public static final int a = 1;
public static final int b = 2;
public static final int c = 3;
枚举:
enum num {
a, b, c;
}
之后我们只需要使用num.a,不知道讲清楚了没有
慕粉1336596023
在异常中有加入@ResponseBody注解码
宇浩滴滴
试了,没毛病
soicano
应该是deleteGirl方法没有返回值,所以(@AfterReturning(returning = "object",pointcut = "log()"))doAftereReturning方法中参数Object为null,然后toString报的空指针吧
qq_淡淡的忧伤_4
课程里老师用统一处理异常的方式来处理的不是流程,是异常。主要是老师举得例子以及操作的流程不是很恰当,容易让人疑惑,老师做的假设是年龄不能小于18岁,所以小于18岁的输入都是异常情况但是老师是直接从数据库修改age小于18岁,然后取值,针对这些异常情况做了不同的处理。重新举个例子你就明白了,如果换成针对前端传入的age只能是0-100的整数,其他输入都是异常情况,对不同的异常情况定义不同的提示信息,101:输入的值不在0-100范围,102:输入的值不是整数,当前端传入异常值则显示异常提示信息,不入库。
不会太久
因为其他方法可能会返回其他类型的对象啊,例如返回一个string类型的对象,所以在返回的时候进行更大的封装,也是为了适配其他的方法
慕少1685431
你们写的是什么,我怎么看不懂,我好像没遇到这个问题,怎么蹦出了hibernate
有没有没被占用的昵称
你这里Result error写的为静态方法,在resultUtil 里边提前对Result 进行了实例化
慕粉欣儿
或许你应该加上controller方法里面的返回值。。。


慕码人4621616
你是不是报这个错误
这是你因为没有写构成方法
添上就好了
隐v
你看一下你的 ExceptionHandle 类;
if(e instanceof GirlException){
return (((GirlException) e).getCode(),e.getMessage());
}else {
logger.error("【系统异常】:{}",e);
return (-1,"未定义错误!");
}加粗的地方,看到了吧,还是返回你构造的那个参数结构,所以带有 data 值。
htky
慕无忌3280818
常量感觉比较好
寂静无声0
为了把100 和“你还在上小学”这种许多类似的数据写在一块,方便管理,直接写枚举方便多了。因为现在数据少就觉得这样多此一举其实数据多的时候找也头疼,想批量修改error里的内容也比较困难
慕娘8086119
我对着视频敲了一遍源码,要的话我可以给你
Ronrey
UNKOWN_ERROR和SUCCESS并用不到吧。
慕粉164945602
applicaiton.yml 文件中配置:
spring:
profiles:
active: dev
在同级目录中,创建 application-dev.yml , application-prod.yml
active: dev 或 active: prod.yml 则代表以上不提on个的环境信息。
小_六_
@ResponseBody注解的作用,去掉就可以了
慕无忌9064723
已出 http://coding.imooc.com/class/117.html
小小少年终会长大
廖师兄的视频里,这里并没有写完整,虽然返回还是正确,0、-1并没有用到枚举,而是直接在ExceptionHandle里拦截的地方写的-1
CTSB
这个问题困扰了我好几天,终于搞定了,记录一下,只要在配置文件中增加数据库方言即可:
#指定数据库方言 spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.SQLServerDialect
注意:我这里用的是SQLServer数据库,如果你用的是MySql数据库的话,可以换成下面的:
#
#指定数据库方言 spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MYSQL5Dialect
風寒羽
下面只是我的拙见:如果是提供给客户的提示,直接跳转到对应的jsp页面显示信息,视频中已经说得比较详细。如果是出现了未知错误,那就需要对日志进行本地的存档,通过对于未知错误的记录修改代码调试,对应到客户端那一边也就只能提示网站出现了未知错误。