2013-06-15 20 views
5

AspectJ kullanarak yay olmayan bir aop yönü yazıyorum ve bunun için öneride bulunacağım yazıyorum.Bir Raw AspectJ'den bir istisna atar mısınız? Önermeden önce

Önceki tavsiyemde, bir dosya açmak istediğimi varsayalım.

public before(): mypointcut() { 
    File file = new File("myfile"); 
    file.getCanonicalPath(); 
} 

Ama IntelliJ IOException işlenmeyen bir özel durum olmakla ilgili sancı: Ben gibi çalıştırmak. Önceden tavsiyeyi nasıl yazabilirim ki istisnayı yakalayabilir ve yeniden işleyebilir veya işlenmemiş özel duruma izin verebilir? Bir sadece normal bir yöntem çağrısı ile sevdiği tavsiyesine beyanı atar eklemelisiniz çağrı yığını istisna uzanmak için

cevap

2

:

Bu tavsiye yalnızca bu atma beyan ederim yöntemlerle uygulanabilir
public before() throws IOException: mypointcut() {...} 

istisna (veya istisna). ... Bu iyi bir fikir, bir başka bir hikaye ise

public before(): mypointcut() { 
    File file = new File("myfile"); 
    try { 
     file.getCanonicalPath(); 
    } catch (IOException ex) { 
     throw new RuntimeException(e); 
    } 
} 

+0

I: Amacıyla

Eğer durum yakalamak ve şöyle RuntimeException bir durumda bu mesajı yeniden atmanızı gerektirecek bunu yeniden atmanızı karışıklığımın nerede olduğunu gör. Son zamanlarda, yalnızca bazı istisnaları atabileceğimi (http://www.eclipse.org/aspectj/doc/next/progguide/semantics-advice.html) okudum: Çalışma zamanı bunlardan biri. Yani haklısınız, bir istisna alırsam, onu "tavsiye atılabilir" bir istisna içinde sarmam gerek. – Eric

İlgili konular