簡體   English   中英

java異常拋出返回

[英]java exception throw return

我創建的以下方法返回一個向量(LVector因為向量已經是某種東西)並且它拋出一個異常。 由於該方法是非空的,我是否總是返回一個LVector,或者當拋出異常時該方法只是取消了自己?

public static LVector crossProduct(LVector v1, LVector v2) throws LCalculateException{
    if(v1.getLength() != 3|| v2.getLength() != 3)
    throw new LCalculateException("Invalid vector lengths");

    return new LVector(new double[3]{v1.get(1)*v2.get(2)-v1.get(2)*v2.get(1),v1.get(2)*v2.get(0)-v1.get(0)*v2.get(2),v1.get(0)*v2.get(1)-v1.get(1)*v2.get(0)});
}

拋出異常時,該方法不返回任何內容(除非該方法也捕獲該異常並且在catch子句中有return語句)。

在您的方法中,只有在未拋出異常時才會執行return語句。 您必須在不拋出異常的任何執行路徑中返回LVector

拋出異常會終止該方法。 在這種情況下不會返回任何內容,並且程序的執行將在您捕獲異常時繼續執行。

如果你真的想計算一個平均值,盡管拋出異常,你可以在你的LCalculateException中添加一個字段。

public class LCalculateException extends Exception{

    public LVector averageResult;

    public LCalculateException(LVector averageResult, String message){
        super(message);
        this.averageResult = averageResult;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM