2015-07-05 16 views
1

对不起,因为我不知道如何解释简单的问题。Java在单独的类中进行验证

我有一个类,一个静态函数,返回该类的数组。 E.g

//returns CustomStack[] 
CustomStack.createCustomStacks({{1,2},{3,4}}) 

然后,我有想要使用此静态函数用于其他目的一个单独的类。我遇到的问题是决定如何处理错误和异常。

因此,考虑在另一个单独的类此功能:

public boolean StackConfirmer (CustomStack[] myCustomStacks) { 
    .... 
} 

如何改变这种功能/的CustomStack.createCustomStacks,这样我也可以处理错误的输出?如果我还不清楚,我可以根据需要进行澄清/编辑。道歉英语不是我的第一语言。像我一样使用null?我使用-1?

编辑:这是一个有点更详尽的代码:

+0

你想要处理错误/异常? – Arpit

回答

0

我会建议使用-1作为数组中的第一个元素(假设它永远不会有-1没有一个错误)。这将是您的标志,指出发生了错误,然后您可以将数组填充到特定的长度以传达错误的性质。即如果数据不好,则由{-1,0}组成,如果数据太多,则为{-1,0,0}。

+0

所以这个让我困惑的主要原因是,我正在传递-1作为我之前宣布的CustomStack []的一部分?这不会导致任何错误? **双编辑或者,也许我应该超越该方法? – SuYoung

+0

不好的做法,学会处理异常,而不是 –

+0

你能澄清“不好的做法”吗?我知道它可能不是标准的,但它有什么“坏”? – lprekon

0

您可以尝试创建自己的Exception类,然后将其放入你的静态方法,例如: “CustomStackException extends Exception”,然后处理里面的特定潜在问题。只是一个建议,它会很干净。

0

从你的描述我想你有这样的

class SeparateClass{ 
    public boolean StackConfirmer (CustomStack[] myCustomStacks) { 
     int[][]x={{1,2},{3,4}}; 
     CustomStack.createCustomStacks(x); 
     return true; 
    } 
} 

class CustomStack{ 
    static CustomStack[] createCustomStacks(int[][]x){ 
     return null; 
    } 
} 

代码说,在你的createCustomStacks方法要确保没有null值作为函数输入传递。您可以抛出一个异常,由主叫方SeparateClass.StackConfimer()处理。

为了给你一个想法,这是你应该如何更新代码

class SeparateClass{ 
    public boolean StackConfirmer (CustomStack[] myCustomStacks) { 
     int[][]x={{1,2},{3,4}}; 
     try { 
      CustomStack.createCustomStacks(x); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return true; 
    } 
} 

class CustomStack{ 
    static CustomStack[] createCustomStacks(int[][]x) throws Exception{ 
     if(x==null)throw new Exception(); 
     return null; 
    } 
} 

注意,我决定把通用异常对象,只是因为这是一个示例代码给你的第一个想法。有很多更具体的例外,你可以使用,或者你可以通过扩展定义你的拥有者例外

相关问题