springboot全域性捕獲異常並返回頁面

2021-10-01 13:31:00 字數 2049 閱讀 8142

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...