- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
tôi có @ControllerAdvice
Lớp xử lý một tập hợp các ngoại lệ. Chúng tôi cũng có một số trường hợp ngoại lệ khác, được viết bằng @ResponseStatus
Bình luận để bình luận. Để kết hợp hai phương pháp này, chúng tôi sử dụng kỹ thuật được mô tả trong bài đăng trên blog:http://spring.io/blog/2013/11/01/Exception-handling-in-spring-mvc , tức là tại Bộ điều khiểnLời khuyên
, ta xử lý tổng quát như sau Exception
:
@ExceptionHandler(value = Exception.class)
public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) ném ngoại lệ {
// Nếu ngoại lệ được chú thích bằng @ResponseStatus, hãy thử lại và để
// framework xử lý nó - như ví dụ OrderNotFoundException
// ở đầu bài viết này.
// AnnotationUtils là một lớp tiện ích của Spring Framework.
if (AnnotationUtils.findAnnotation(e.getClass(), ResponseStatus.class) != null)
throw e;
// Ngược lại, hãy thiết lập và gửi người dùng đến chế độ xem lỗi mặc định.
ModelAndView mav = new ModelAndView();
mav.addObject("ngoại lệ", e);
mav.addObject("url", req.getRequestURL());
mav.setViewName(DEFAULT_ERROR_VIEW);
return mav;
}
Tuy nhiên, nó hoạt động như một bùa mê, việc sử dụng kỹ thuật này sẽ dẫn đến lỗi với văn bản sau trong nhật ký ứng dụng:
11/06/2014 15:51:32.907 LỖI oswsmmaExceptionHandlerExceptionResolver - Không thể gọi phương thức @ExceptionHandler: ...
Điều này được gây ra bởi đoạn mã này trong ExceptionHandlerExceptionResolver
:
thử {
if (logger.isDebugEnabled()) {
logger.debug("Gọi phương thức @ExceptionHandler: " +ExceptionHandlerMethod);
}
ngoại lệHandlerMethod.invokeAndHandle(webRequest, mavContainer, ngoại lệ);
}
bắt (gọi ngoại lệEx) {
logger.error("Không thể gọi phương thức @ExceptionHandler: " +ExceptionHandlerMethod, invocationEx);
return null;
}
Có ai biết cách kết hợp đúng cách hai phương pháp xử lý ngoại lệ này để tránh lỗi trong nhật ký không?
Cảm ơn, Jane
câu trả lời hay nhất
Đây là một câu hỏi cũ nhưng tôi mới gặp nó hôm nay và tìm ra giải pháp tốt hơn là vô hiệu hóa ExceptionHandlerExceptionResolver
Giải pháp tốt hơn cho việc đăng nhập. Hóa ra vấn đề này có thể được giải quyết bằng cách nâng cấp lên phiên bản mới nhất của Spring framework (4.3.8 phù hợp với tôi). ExceptionHandlerExceptionResolver
Đã sửa lỗi để phát hiện xem ngoại lệ ban đầu có bắt đầu từ @ExceptionHandler
Ném lại. Trong trường hợp này, ngoại lệ không còn được ghi lại.
Về xử lý ngoại lệ java - @ControllerAdvice cùng với @ResponseStatus, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/24164862/
Vấn đề rất đơn giản: Tôi đang tìm một cách hay để sử dụng CompleteableFuture#đặc biệt cùng với CompletableFuture#supplyAsync. Điều này không hiệu quả: priva.
Đối với các dịch vụ web, chúng tôi thường sử dụng maven-jaxb2-plugin để tạo java Beans và sử dụng mã hóa JAXB2 trong Spring. Tôi muốn biết cách xử lý (SOAP-
Câu hỏi này đã có câu trả lời: Chỉ mục mảng ngoài hành vi bị ràng buộc (10 câu trả lời) Đã đóng 8 năm trước. Tôi tò mò về mã C sau đây int main(){
Khi đối tượng MediaPlayer được khởi tạo ở đầu lớp với ngữ cảnh và tài nguyên, nó sẽ ném ngoại lệ NullPointer, nhưng khi nó được khai báo ở đầu lớp (vì vậy nó là null), thì nó được khởi tạo theo cách tương tự trên bên Tạo
Xin chào, tôi đang cố gắng kết nối chương trình java với API REST. Sử dụng cùng một phần mã, tôi nhận được ngoại lệ Java trong Java 6 và nó hoạt động tốt trong Java 8. Môi trường giống nhau: tin tưởng vào tác nhân người dùng unix của máy
Tôi đang cố gắng phân tích Twitter bằng Flume và Hive. Để nhận được các tweet từ Twitter, tôi đặt tất cả các tham số bắt buộc (consumerKey, ConsumerKey,
Tôi đang gặp một số vấn đề với ngoại lệ JavaFX. Dự án của tôi đang chạy trong Eclipse, nhưng bây giờ bạn tôi cũng đang cố gắng truy cập vào dự án. Chúng tôi đã chia sẻ và lưu trực tiếp vào thư mục dropbox. Nhưng đơn giản là anh ấy không thể làm cho nó thành công được. Anh ấy đang ở bàn điều khiển
Giả sử tôi đã xác minh id email bằng sự kiện Blur(), tôi đang thực hiện việc này: $('#email').blur(function(){ //make ajax call , kiểm tra xem có trùng lặp không
Tôi làm điều này để gọi các hàm không được quản lý từ mã C. pCallback là một con trỏ hàm và do đó là một đại biểu ở phía được quản lý. [DllImport("MyDLL.dll")] trạng thái công khai
Tại sao mã này đúng: try { } Catch(ArrayOutOfBoundsException e) {} Mã này sai: try { } Catch(IOException e) {} Mã này
Tôi gặp sự cố sau: Một tệp DLL có các hàm được xuất. Ví dụ về mã như sau: [Thư viện liên kết động] __declspec(dllexport) int openDevice(int,void**) [Application] dev.h: __de
Từ các chủ đề khác, tôi biết rằng chúng ta không nên ném ngoại lệ vào hàm hủy! Nhưng đối với ví dụ bên dưới, nó vẫn hoạt động. Điều này có nghĩa là chúng ta chỉ có thể ném ngoại lệ vào hàm hủy của một thể hiện? Chúng ta nên hiểu ví dụ mã này như thế nào!
Tại sao chúng ta cần ngoại lệ để tăng public static void main(String[
1. Cơ chế ngoại lệ của Java Lớp Throwable là lớp cha cấp cao nhất của các loại ngoại lệ Java. Chỉ khi một đối tượng là một thể hiện (trực tiếp hoặc gián tiếp) của lớp Throwable thì nó là một đối tượng ngoại lệ và có thể được cơ chế xử lý ngoại lệ nhận ra. . Trong JDK
Tôi mới làm quen với Python và tôi có câu hỏi về việc triển khai một phương pháp ngoại lệ nhất định. Đây là mã (viết tắt): class OurException(Exception): """Ngoại lệ do người dùng xác định"
Tôi đã tạo lược đồ sau để thể hiện mối liên kết giữa một người dùng và một tập hợp các chủ đề được sắp xếp theo thông báo cuối cùng của họ (luồng nào người dùng đã đọc và chuỗi nào chưa): CREATE TABLE table(user_id bigint, mes
Tôi đang viết một tập lệnh tự động hóa đơn giản bằng Python có thể đưa ra ngoại lệ ở nhiều nơi. Trong mỗi người trong số họ tôi muốn ghi lại một tin nhắn cụ thể và thoát khỏi chương trình. Để làm điều này, tôi nâng cao Sys sau khi bắt được ngoại lệ và xử lý nó (thực hiện các thao tác ghi nhật ký cụ thể, v.v.)
Bất cứ ai có thể giải thích tại sao điều này sẽ gây ra lỗi: let xs = [| "Mary"; "Mungo"; "Midge" |] Array.iter printfn xs Mặc dù đây không phải là trường hợp: Array.iter pr
Trên trang web sử dụng Play! của tôi, tôi có phần quản trị. Tất cả Bộ điều khiển dành cho quản trị viên đều có chú thích @With và @Check. Sau khi ngắt kết nối, mọi thứ hoạt động tốt. Sau khi kết nối, mỗi khi một trang được tải (bất kỳ trang nào, bất kể
Tôi cố gắng kết nối với bộ lưu trữ bảng Azure và thêm một đối tượng. Nó hoạt động tốt trên localhost, nhưng trên máy chủ tôi đang sử dụng, tôi gặp ngoại lệ sau với ngoại lệ bên trong của nó: Ngoại lệ của loại 'Microsoft.Wind
Tôi là một lập trình viên xuất sắc, rất giỏi!