Tôi thấy rằng Guice và Spring sử dụng AOP Alliance dưới sự che chở cho các biện pháp can thiệp, và tôi đã cố gắng tìm cách làm sao để AOP Alliance chặn và xử lý một số ngoại lệ nhất định. viết cùng một mã lặp đi lặp lại bên trong mỗi khối catch
.Xử lý ngoại lệ AOP
Nhưng sau khi xem lại, có vẻ như AOP Alliance không cung cấp bất kỳ cách nào để chặn chặn Throwable
s theo cách mà trình xử lý/trình chặn có thể thực hiện một số thứ (ngoại trừ, v.v.) và sau đó xác định có hay không để tuyên truyền ngoại trừ thêm nữa hoặc chỉ phục hồi trở lại vào dòng tiếp theo sau dòng mà ném ngoại lệ:
HerpDerp hd = null;
if(hd == null)
throw new RuntimeException("Herpyl derp!");
Manny.pacquiao();
tôi đang tìm kiếm một AOP cơ chế xử lý ngoại lệ đó sẽ đánh chặn các RuntimeException
và sử dụng logic nghiệp vụ để quyết định có tiếp tục truyền hoặc khôi phục lại cuộc gọi Manny.pacquioa()
hay không .
- Nếu nó chỉ là không thể làm được điều này trong Java, xin vui lòng cho tôi biết
- Bất kể có hay không nó có thể làm điều này trong Java, là có một cách để ngăn chặn ngoại lệ ném với AOP Alliance hoặc tôi có phải đi đâu đó không. Và nếu tôi phải đi đâu đó, ở đâu? AspectJ?
Cảm ơn!
Cảm ơn @Wim - là AOP-based xử lý ngoại lệ như thế này là không thể với AOP Alliance? – IAmYourFaja
Tôi không nghĩ vậy. Nếu bạn kiểm tra [tài liệu xuân] (http://static.springsource.org/spring/docs/3.1.1.RELEASE/spring-framework-reference/html/aop.html), nó sẽ hiển thị điều này: 'Tham gia điểm : một điểm trong khi thực hiện một chương trình, chẳng hạn như việc thực hiện một phương thức hoặc xử lý một ngoại lệ. Trong Spring AOP, một điểm nối luôn luôn đại diện cho một phương thức thực hiện.' –
Có thể [ConstructorInterceptor] (http://aopalliance.sourceforge.net/doc/org/aopalliance/intercept/ConstructorInterceptor.html) bằng cách nào đó bị tấn công để chặn các ngoại lệ (khi chúng được xây dựng)? – IAmYourFaja