上下文:我正在为学校写一个信号量类,其中一个要求是它可能没有用负值初始化.
现在我的构造函数抛出异常:
/**
* Constructor
*/
public Semaphore(int value) throws Exception
{
if (value < 0)
throw new Exception("Negative value provided for initial constructor.");
this.value = value;
}
Run Code Online (Sandbox Code Playgroud)
处理异常以实例化信号量对我来说似乎过于沉重,所以我正在考虑将任何负值静默设置为零,即:
/**
* Constructor
*/
public Semaphore(int value)
{
if (value < 0)
this.value = 0;
else
this.value = value;
}
Run Code Online (Sandbox Code Playgroud)