2015-07-20 53 views
0

我想知道如何在java.i中定製塊異常將在以下示例中解釋它。如何在Java中拋出自定義塊異常

@login

//Below code snippet do log in functionality. 
mycode goes here 

String name="abc"; 
if name.equals("ABC") 
{ 
    enter to system ... 
} 

控制檯輸出將

You have error on log in 

@Register

//Below code snippet do register functionality. 

mycode goes here 

讓@login一說nnotation有一個錯誤,從我的代碼.java應該拋出它像一個很好的可讀方式。異常應該像常規異常和它生成的地方。我的意思是代碼塊在這種情況下,它是登錄。如果註冊應該說你有寄存器代碼塊中的錯誤。

另外我不聲明方法之上的註釋。在我的情況下,沒有這樣的方法和一切處理註釋。 作爲例子

學生班級

class student{ 
@login 
login related codes goes here 

@View Result 
view result related codes goes here 

@logout 
logout code goes here 

} 

正如你可以考慮上面的類如硒script.in腳本我們不使用任何methods.i要實現後端類的例子(註釋)在相關代碼塊中發生併發生有意義的錯誤(登錄,查看結果,...)

當用戶編寫新腳本時,他可以重新使用我的註釋。

其實這是一個想法,我想實現。因爲如果我這樣做,它會很容易爲我的應用程序users.so我想知道,它可以做,如果是的話,我該怎麼做。如果你知道另一種方式請讓我知道你的想法。謝謝。

+0

什麼不回答http://docs.oracle.com/javase/tutorial/essential/exceptions/? –

+0

@JB Nizet是的,但我想實現定製的異常block.let說try catch塊我想實現類似的異常處理程序爲我的登錄。在那裏我不使用嘗試catch塊但登錄塊處理它,並拋出異常。如果你不清楚我的問題讓我知道。 – gihan

+0

那麼你是否試圖在沒有try/catch塊的情況下進行異常處理?我很難回答這個問題。 – aconkey

回答

1

我不相信我完全理解這個問題,但如果你正在尋找用於創建自定義例外,您可以執行以下操作:

if name.equals("ABC") { 
    // do something 
} else { 
    throw new CustomException("Name did not equal 'ABC'"); 
} 

其中自定義異常定義爲:

public class CustomException extends Exception { 

    public CustomException(String msg) { 
     super(msg); 
    } 
} 

然後無論你需要處理的例外,它看起來像:

try { 
    // do something that might throw a CustomException 
} catch (CustomException ce) { 
    ce.printStackTrace(); 
    // or do something more useful to handle the exception 
} 

如果你走這條路線,我會稱之爲CustomException以外的東西,稱之爲與例外情況有關的問題,例如NameNotEqualException

+0

我想要類似於這個的東西,但我的異常處理通過登錄annotation.login註釋負責處理其下面的代碼塊,如果有是我想要打印的錯誤「錯誤是在登錄中」。 – gihan

+0

這些'@ login'和'@ register'註釋是從哪裏來的?他們究竟做了什麼? – aconkey

+0

讓我想我已經創建了自定義註釋login.and每次開發人員實現相關的登錄功能stuff.he必須在他的代碼頂部聲明@login註釋。就像我的問題。如果該代碼系統中有錯誤應該打印它像「登錄時出錯」,輸出錯誤。注意:登錄和註冊仍然只是一個idea.i將編輯我的代碼,然後你可以得到一個清晰的想法。 – gihan