服务端代码异常处理

后端java统一处理抛到前端的异常返回结果可以使用utils提供的异常基类,如果是spring框架产生的异常可以用spring的errorhandler进行统一处理

使用基类抛出异常会去掉stack,前端不会打印堆栈出来

基类如下:

com.justep.lang.BaseException

com.justep.lang.BaseRuntimeException

具体的参数说明如下:

{
   code:"业务错误编码-非必填",
   status:"http status 默认500 推荐指定"
   message:"用户可见的错误描述-必须指定",
   type:"异常全类名  -- 自动根据exception获取 开发人员根据type detail 定位问题"
   detail:"异常描述  暴露到前端 不允许打印敏感信息  --非必填"
   time:"异常产生时间 -- 自动生成"
   service:"异常产生服务 -默认当前serviceName -- 传递异常的时候可以修改"
}

可以如下使用: throw new BaseRuntimeException("001",HttpStatus.UNAUTHORIZED.value(),"当前账户名已经被锁定,请稍后重试",null);

需要导入import org.springframework.http.HttpStatus;

参数的规范:

code

为方便沟通以及防止重复 推荐格式 {serviceName}-{moduleName}-{apiName}-{errorCode} 例如 entry-uaa-login-001

In addition to descriptive error text, error messages contain machine-parseable codes. While the text for an error message may change, the codes will stay the same.

The following table describes the codes which may appear when working with the standard API (note that the Ads API and some other resource families may present additional error codes). If an error response is not listed in the table, fall back to examining the HTTP status codes above in order to determine the best way to address the issue.

Code Text Description
3 Invalid coordinates.
Corresponds with HTTP 400. The coordinates provided as parameters were not valid for the request.
13 No location associated with the specified IP address.
Corresponds with HTTP 404. It was not possible to derive a location for the IP address provided as a parameter on the geo search request.
17 No user matches for specified terms.
Corresponds with HTTP 404. It was not possible to find a user profile matching the parameters specified.
32 Could not authenticate you Corresponds with HTTP 401. There was an issue with the authentication data for the request.
34 Sorry, that page does not exist Corresponds with HTTP 404. The specified resource was not found.
36 You cannot report yourself for spam. Corresponds with HTTP 403. You cannot use your own user ID in a report spam call.
38 \ parameter is missing. Corresponds with HTTP 403. The request is missing the \ parameter (such as media, text, etc.) in the request.
44 attachment_url parameter is invalid Corresponds with HTTP 400. The URL value provided is not a URL that can be attached to this Tweet.
50 User not found. Corresponds with HTTP 404. The user is not found.
63 User has been suspended. Corresponds with HTTP 403 The user account has been suspended and information cannot be retrieved.
64 Your account is suspended and is not permitted to access this feature Corresponds with HTTP 403. The access token being used belongs to a suspended user.
68 The Twitter REST API v1 is no longer active. Please migrate to API v1.1. Corresponds to a HTTP request to a retired v1-era URL.
87 Client is not permitted to perform this action. Corresponds with HTTP 403. The endpoint called is not a permitted URL.
88 Rate limit exceeded The request limit for this resource has been reached for the current rate limit window.
89 Invalid or expired token The access token used in the request is incorrect or has expired.
92 SSL is required Only SSL connections are allowed in the API. Update the request to a secure connection. See how to connect using TLS
93 This application is not allowed to access or delete your direct messages Corresponds with HTTP 403. The OAuth token does not provide access to Direct Messages.
99 Unable to verify your credentials. Corresponds with HTTP 403. The OAuth credentials cannot be validated. Check that the token is still valid.
120 Account update failed: value is too long (maximum is nn characters).
Corresponds with HTTP 403. Thrown when one of the values passed to the update_profile.json endpoint exceeds the maximum value currently permitted for that field. The error message will specify the allowable maximum number of nn characters.
130 Over capacity Corresponds with HTTP 503. Twitter is temporarily over capacity.
131 Internal error Corresponds with HTTP 500. An unknown internal error occurred.
135 Could not authenticate you Corresponds with HTTP 401. Timestamp out of bounds (often caused by a clock drift when authenticating - check your system clock)
139 You have already favorited this status. Corresponds with HTTP 403. A Tweet cannot be favorited (liked) more than once.
144 No status found with that ID. Corresponds with HTTP 404. The requested Tweet ID is not found (if it existed, it was probably deleted)
150 You cannot send messages to users who are not following you. Corresponds with HTTP 403. Sending a Direct Message failed.
151 There was an error sending your message: reason Corresponds with HTTP 403. Sending a Direct Message failed. The reason value will provide more information.
160 You've already requested to follow user.
Corresponds with HTTP 403. This was a duplicated follow request and a previous request was not yet acknowleged.
161 You are unable to follow more people at this time Corresponds with HTTP 403. Thrown when a user cannot follow another user due to reaching the limit. This limit is applied to each user individually, independent of the applications they use to access the Twitter platform.
179 Sorry, you are not authorized to see this status Corresponds with HTTP 403. Thrown when a Tweet cannot be viewed by the authenticating user, usually due to the Tweet’s author having protected their Tweets.
185 User is over daily status update limit Corresponds with HTTP 403. Thrown when a Tweet cannot be posted due to the user having no allowance remaining to post. Despite the text in the error message indicating that this error is only thrown when a daily limit is reached, this error will be thrown whenever a posting limitation has been reached. Posting allowances have roaming windows of time of unspecified duration.
186 Tweet needs to be a bit shorter. Corresponds with HTTP 403. The status text is too long.
187 Status is a duplicate The status text has already been Tweeted by the authenticated account.
195 Missing or invalid url parameter Corresponds with HTTP 403. The request needs to have a valid url parameter.
205 You are over the limit for spam reports. Corresponds with HTTP 403. The account limit for reporting spam has been reached. Try again later.
214 Owner must allow dms from anyone. Corresponsds with HTTP 403. The user is not set up to have open Direct Messages when trying to set up a welcome message.
215 Bad authentication data Corresponds with HTTP 400. The method requires authentication but it was not presented or was wholly invalid.
220 Your credentials do not allow access to this resource. Corresponds with HTTP 403. The authentication token in use is restricted and cannot access the requested resource.
226 This request looks like it might be automated. To protect our users from spam and other malicious activity, we can’t complete this action right now. We constantly monitor and adjust our filters to block spam and malicious activity on the Twitter platform. These systems are tuned in real-time. If you get this response our systems have flagged the Tweet or Direct Message as possibly fitting this profile. If you believe that the Tweet or DM you attempted to create was flagged in error, report the details by filing a ticket at https://help.twitter.com/forms/platform.
231 User must verify login Returned as a challenge in xAuth when the user has login verification enabled on their account and needs to be directed to twitter.com to generate a temporary password. Note that xAuth is no longer an available option for authentication on the API.
251 This endpoint has been retired and should not be used. Corresponds to a HTTP request to a retired URL.
261 Application cannot perform write actions. Corresponds with HTTP 403. Thrown when the app is restricted from POST, PUT, or DELETE actions. Check the information on your app dashboard. You may also file a ticket at https://help.twitter.com/forms/platform.
271 You can’t mute yourself. Corresponds with HTTP 403. The authenticated user account cannot mute itself.
272 You are not muting the specified user. Corresponds with HTTP 403. The authenticated user account is not muting the account a call is attempting to unmute.
323 Animated GIFs are not allowed when uploading multiple images. Corresponds with HTTP 400. Only one animated GIF may be attached to a single Tweet.
324 The validation of media ids failed. Corresponds with HTTP 400. There was a problem with the media ID submitted with the Tweet.
325 A media id was not found. Corresponds with HTTP 400. The media ID attached to the Tweet was not found.
326 To protect our users from spam and other malicious activity, this account is temporarily locked. Corresponds with HTTP 403. The user should log in to https://twitter.com to unlock their account before the user token can be used.
327 You have already retweeted this Tweet.
Corresponds with HTTP 403. The user cannot retweet the same Tweet more than once.
349 You cannot send messages to this user. Corresponds with HTTP 403. The sender does not have privileges to Direct Message the recipient.
354 The text of your direct message is over the max character limit. Corresponds with HTTP 403. The message size exceeds the number of characters permitted in a Direct Message.
355 Subscription already exists. Corresponds with HTTP 409 Conflict. Related to Account Activity API request to add a new subscription for an authenticated user.
385 You attempted to reply to a Tweet that is deleted or not visible to you. Corresponds with HTTP 403. A reply can only be sent with reference to an existing public Tweet.
386 The Tweet exceeds the number of allowed attachment types. Corresponds with HTTP 403. A Tweet is limited to a single attachment resource (media, Quote Tweet, etc.)
407 The given URL is invalid. Corresponds with HTTP 400. A URL included in the Tweet could not be handled. This may be because a non-ASCII URL could not be converted, or for other reasons.
415 Callback URL not approved for this client application. Approved callback URLs can be adjusted in your application settings
Corresponds with HTTP 403. The app callback URLs must be whitelisted via the app details page in the developer portal. Only approved callback URLs may be used by the Twitter app. See the Callback URL documentation.
416 Invalid / suspended application
Corresponds with HTTP 401. The app has been suspended and cannot be used with Sign-in with Twitter.
417 Desktop applications only support the oauth_callback value 'oob'
Corresponds with HTTP 401. The application is attempting to use out-of-band PIN-based OAuth, but a callback URL has been specified in the app settings.

google error code

https://download.huihoo.com/google/gdgdevkit/DVD1/developers.google.com/storage/docs/json_api/v1/status-codes.html

status

return appropriate HTTP status codes

Code Text Description
200 OK Success!
202 Accepted response中要返回异步任务查询的api地址 表示服务器端已经收到请求消息,但是尚未进行处理。但是对于请求的处理确实无保证的,即稍后无法通过 HTTP 协议给客户端发送一个异步请求来告知其请求的处理结果。这个状态码被设计用来将请求交由另外一个进程或者服务器来进行处理,或者是对请求进行批处理的情形
302 Redirect 后端重定向微服务环境网关会自动处理服务名问题
304 Not Modified There was no new data to return.
400 Bad Request The request was invalid or cannot be otherwise served. An accompanying error message will explain further. Requests without authentication are considered invalid and will yield this response.
401 Unauthorized 非法访问,比如后台api前台访问 Missing or incorrect authentication credentials. This may also returned in other undefined circumstances.
403 Forbidden 权限不足authorize插件鉴权失败 The request is understood, but it has been refused or access is not allowed. An accompanying error message will explain why. This code is used when requests are being denied due to [update limits]. Other reasons for this status being returned are listed alongside the error codes in the table below.
404 Not Found The URI requested is invalid or the resource requested, such as a user, does not exist.
406 Not Acceptable Returned when an invalid format is specified in the request.
410 Gone 调试门户过期,委托代理过期等 This resource is gone. Used to indicate that an API endpoint has been turned off.
417 Expectation Failed gox5 内容协商失败等
420 Enhance Your Calm Returned when an app is being rate limited for making too many requests.
422 Unprocessable Entity Returned when the data is unable to be processed (for example, if an image uploaded to POST account / update_profile_banner is not valid, or the JSON body of a request is badly-formed).
429 Too Many Requests Returned when a request cannot be served due to the app's rate limit having been exhausted for the resource. See Rate Limiting.
500 Internal Server Error Something is broken. This is usually a temporary error, for example in a high load situation or if an endpoint is temporarily having issues. try again later.
502 Bad Gateway 网关或绑定问题
503 Service Unavailable 后端服务模块问题 .
504 Gateway timeout 健康检查或者api本身问题

message

API error messages are returned in JSON format. For example, an error might look like this:

{"errors":[{"message":"Sorry, that page does not exist","code":34}]}

results matching ""

    No results matching ""

    results matching ""

      No results matching ""