1.新建異常類myexception,注意必須繼承runtimeexception
public class myexception extends runtimeexception
//異常資訊
private string message;
public void setmessage(string message)
}
2. 在**中丟擲異常
@component
@aspect
public class interceptor
}/**
* 記錄日誌
** @param joinpoint 切面連線點
* 整個表示式可以分為五個部分:
* 1、execution(): 表示式主體。
* 2、第乙個*號:表示返回型別,*號表示所有的型別。
* 3、包名:表示需要攔截的包名,後面的兩個句點表示當前包和當前包的所有子包,com.cmbchina.ccd.oa.hrtransfer.controller包、子孫包下所有類的方法。
* 4、第二個*號:表示類名,*號表示所有的類。
* 5、*(..):最後這個星號表示方法名,*號表示所有的方法,後面括弧裡面表示方法的引數,兩個句點表示任何引數。
* @return 統一返回報文
* @throws throwable
*/@around("execution(* com.cmbchina.ccd.oa.socialsecurity.controller.*controller.*(..))")
public object loginfo(proceedingjoinpoint joinpoint) else
}try
}return result;
} catch (throwable exp)
accesslog.settype(constant.logtype.local_system_exception);
accesslog.setreturnmsg(sb.tostring());
logservice.createlog(accesslog);
logger.error(sb.tostring());
exp.printstacktrace();
throw new myexception(exp.getmessage());
//return null;}}
/*** 呼叫介面後攔截
* @param myinteceptor
*/@afterreturning(returning="result", pointcut="@annotation(myinteceptor)")
public void after(object result, myinteceptor myinteceptor)}}
/*** 獲取攔截類的命名空間
** @param clazz
* @return
*/private string getnamespace(class clazz) else }}
return path;
}}
@target()
@retention(retentionpolicy.runtime)
@documented
public @inte***ce myinteceptor
4.全域性捕獲異常
@controlleradvice
public class globalexceptionhandler
// 處理方法引數的異常型別
@exceptionhandler()
public object exceptionhandle(exception e)
}
springboot全域性異常捕獲
新專案中需要用到檔案上傳,有需要對上傳檔案大小進行限制,當檔案超過限制的時候,springboot框架會直接丟擲異常,不會進入你的方法中,當我們需要向前臺返回資訊的時候也無從返回,只能進行全域性捕獲檔案過大的異常,然後再返回資訊。controlleradvice public class mycon...
SpringBoot實現全域性異常捕獲
springboot 對異常可以進行全域性捕獲,按照如下操作即可 restcontrolleradvice是對 restcontroller的加強 exceptionhandler是自定義錯誤處理器,使用時可以註明具體需要處理的錯誤型別 該錯誤捕獲方式是將所有錯誤向上一直丟擲至 spring 容器,...
springBoot全域性異常捕獲類
controlleradvice 宣告當前類為乙個全域性異常處理類 在異常捕獲類中可以進行檢視跳轉和json響應 restcontrolleradvice 宣告當前類為乙個全域性異常處理類 所有方法的都新增 responsebody 類中所有的方法的返回值都會被以json形式響應 restcontr...