优雅的处理异常操作

优雅的处理异常

  • 自定义断言类
  • 全局处理异常
/*
自定义断言类,传入需要判断的集合或者字符串 和 错误信息,如果为空则抛出异常,被全局异常处理器捕获进行对应处理, @Nullable 表示可传入一个null值,@NotNull 表示不可以出入null值
*/
public class MyAssert {
/**
* 断言 字符串为空,抛异常
*
* @param str
* @param message
*/
public static void check(boolean flag, String message) {
if (flag) {
throw new TarsPluralismException(message);
}
}
/**
* 断言 字符串为空,抛异常
*
* @param str
* @param message
*/
public static void isNull(@Nullable Object str, String message) {
check(str == null || StringUtils.isBlank(str.toString()), message);
}
/**
* 断言 集合为空 抛异常
*
* @param <T>
* @param collection
* @param message
*/
public static <T> void isEmpty(@Nullable Collection<T> collection, String message) {
check(CollectionUtils.isEmpty(collection), message);
}
}
/*
全局异常处理器,捕获Exception异常,如果抛出的异常属于Exception,进行对应的处理
*/
@Slf4j
@RestControllerAdvice
public class TarsPluralismExceptionConfig {
@ExceptionHandler(value = Exception.class)
public HttpResponse exception(Exception exception, HttpServletRequest request) {
if (exception instanceof TarsPluralismException) {
TarsPluralismException tarsPluralismException = (TarsPluralismException) exception;
log.info("{}-{}-{}", request.getRequestURI(), request.getMethod(), tarsPluralismException.getRespDesc());
return new HttpResponse(tarsPluralismException.getRespDesc());
}
log.error("{}-{}-{}", request.getRequestURI(), request.getMethod(), exception);
return new HttpResponse("系统异常");
}
}
/*
代码中的应用,这样子进行异常的处理,避免了大量的if/else判断,使得代码比较简洁
*/
public static void main (String args){
List list = new List();
MyAssert.isEmpty(list,"List不可以为空");
...
...
...
}
posted @   yishan99  阅读(71)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示