我知道两种异常处理方法,让我们来看看它们.
合同方式.
如果方法没有按照它在方法头中所做的那样做,它将抛出异常.因此,该方法"承诺"它将执行操作,如果由于某种原因失败,它将抛出异常.
特殊的方法.
只有在发生真正奇怪的事情时抛出异常.当您可以使用正常控制流(If语句)解决情况时,不应使用异常.您不会像在合同方法中那样使用Exceptions作为控制流.
让我们在不同的情况下使用这两种方法:
我们有一个Customer类,它有一个名为OrderProduct的方法.
合同方式:
class Customer
{
public void OrderProduct(Product product)
{
if((m_credit - product.Price) < 0)
throw new NoCreditException("Not enough credit!");
// do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
特殊方法:
class Customer
{
public bool OrderProduct(Product product)
{
if((m_credit - product.Price) < 0)
return false;
// do stuff
return true;
}
}
if !(customer.OrderProduct(product))
Console.WriteLine("Not enough credit!");
else
// go on with your life
Run Code Online (Sandbox Code Playgroud)
在这里,我更喜欢这种特殊的方法,因为假设他没有赢得彩票,客户没有钱也不是真正的例外.
但这是一种我在合同风格上犯错的情况.
卓越:
class CarController
{
// returns null if car creation failed.
public …
Run Code Online (Sandbox Code Playgroud) 我已经看到John Resig的快速新选择器引擎Sizzle出现在很多地方的消息,但我不知道选择器引擎是什么,也没有任何文章解释它是什么.我知道Resig是jQuery的创建者,而Sizzle是Javascript中的东西,但除此之外我不知道它是什么.那么,什么是选择器引擎?
谢谢!
你知道在哪里可以找到VS 2008的一些有用的第三方(免费)代码片段吗?
假设我有三个文件(模板_*.txt):
我想将它们复制到三个新文件(foo _*.txt).
有一些简单的方法可以用一个命令来做到这一点,例如
cp --enableAwesomeness template_*.txt foo_*.txt
我正在尝试绑定以下快捷方式:Ctrl + W关闭标签
如何自定义VS以添加/更改快捷方式?另外,你们找到的最有用的快捷方式是什么?
您是否专业使用Design by Contract?这是您从项目一开始就要做的事情,还是可以改变方向并开始将其融入您的软件开发生命周期?您发现什么是设计方法的优缺点?
我在研究生课程中遇到了" 按合同设计"的方法.在学术环境中,它似乎是一种非常有用的技术.但我目前不专业地使用Design by Contract,而且我不知道任何其他开发人员正在使用它.听听SO群众的实际使用情况会很好.
我养成了将变量使用率保持在最低限度的习惯.所以我想知道以下是否有任何好处:
$query = $mysqli->query('SELECT * FROM `people` ORDER BY `name` ASC LIMIT 0,30');
// Example 1
$query = $query->fetch_assoc();
// Example 2
$query_r = $query->fetch_assoc();
$query->free();
Run Code Online (Sandbox Code Playgroud)
现在,如果我是对的实例1应该是更有效,因为$query
是unset
当我重新分配它应该释放任何相关的记忆.但是有一个方法(MySQLi_Result::free()
)可以释放相关的内存 - 这是一回事吗?
如果我不调用::free()
释放与结果相关的任何内存,但是unset
通过重新分配变量,我做同样的事情吗?我不知道如何记录这类事情 - 有没有人有一些想法?
我和我的同事遇到了一个令人讨厌的情况,我们必须使用一个活动的X控件来操纵页面上的网络摄像头.
是否可以将javascript事件处理程序分配给活动x控件中的按钮,以便在单击时触发页面上的操作,或者我们是否必须在html页面上创建一个操作Active X Control的按钮,然后可以在页面上触发任何必要的操作?
我需要在运行时将ID和密码传递给批处理文件,而不是将它们硬编码到文件中.
这是命令行的样子:
test.cmd admin P@55w0rd > test-log.txt
Run Code Online (Sandbox Code Playgroud)