问题列表 - 第216页

异常处理:合同与特殊方法

我知道两种异常处理方法,让我们来看看它们.

  1. 合同方式.

    如果方法没有按照它在方法头中所做的那样做,它将抛出异常.因此,该方法"承诺"它将执行操作,如果由于某种原因失败,它将抛出异常.

  2. 特殊的方法.

    只有在发生真正奇怪的事情时抛出异常.当您可以使用正常控制流(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)

exception

12
推荐指数
1
解决办法
846
查看次数

什么是选择器引擎?

我已经看到John Resig的快速新选择器引擎Sizzle出现在很多地方的消息,但我不知道选择器引擎是什么,也没有任何文章解释它是什么.我知道Resig是jQuery的创建者,而Sizzle是Javascript中的东西,但除此之外我不知道它是什么.那么,什么是选择器引擎?

谢谢!

javascript jquery glossary resig

29
推荐指数
4
解决办法
9156
查看次数

第三方Visual Studio片段

你知道在哪里可以找到VS 2008的一些有用的第三方(免费)代码片段吗?

visual-studio-2008 visual-studio code-snippets

5
推荐指数
1
解决办法
426
查看次数

Bash One Liner:将模板_*.txt复制到foo _*.txt?

假设我有三个文件(模板_*.txt):

  • template_x.txt
  • template_y.txt
  • template_z.txt

我想将它们复制到三个新文件(foo _*.txt).

  • foo_x.txt
  • foo_y.txt
  • foo_z.txt

有一些简单的方法可以用一个命令来做到这一点,例如

cp --enableAwesomeness template_*.txt foo_*.txt

bash

9
推荐指数
1
解决办法
771
查看次数

Visual Studio 2005快捷方式

我正在尝试绑定以下快捷方式:Ctrl + W关闭标签

如何自定义VS以添加/更改快捷方式?另外,你们找到的最有用的快捷方式是什么?

shortcuts visual-studio-2005 visual-studio

6
推荐指数
1
解决办法
3494
查看次数

合同设计是否适合您?

您是否专业使用Design by Contract?这是您从项目一开始就要做的事情,还是可以改变方向并开始将其融入您的软件开发生命周期?您发现什么是设计方法的优缺点?

我在研究生课程中遇到了" 按合同设计"的方法.在学术环境中,它似乎是一种非常有用的技术.但我目前不专业地使用Design by Contract,而且我不知道任何其他开发人员正在使用它.听听SO群众的实际使用情况会很好.

design-by-contract

24
推荐指数
2
解决办法
3653
查看次数

Swing的IDE

是否有任何IDE可以简化创建Swing应用程序(理想情况下是Visual Studio的内容)

java ide swing

46
推荐指数
10
解决办法
3万
查看次数

使用MySQLi - 这更适合关闭查询

我养成了将变量使用率保持在最低限度的习惯.所以我想知道以下是否有任何好处:

$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应该是更有效,因为$queryunset当我重新分配它应该释放任何相关的记忆.但是有一个方法(MySQLi_Result::free())可以释放相关的内存 - 这是一回事吗?

如果我不调用::free()释放与结果相关的任何内存,但是unset通过重新分配变量,我做同样的事情吗?我不知道如何记录这类事情 - 有没有人有一些想法?

php mysql memory mysqli

2
推荐指数
1
解决办法
810
查看次数

Active X Control JavaScript

我和我的同事遇到了一个令人讨厌的情况,我们必须使用一个活动的X控件来操纵页面上的网络摄像头.

是否可以将javascript事件处理程序分配给活动x控件中的按钮,以便在单击时触发页面上的操作,或者我们是否必须在html页面上创建一个操作Active X Control的按钮,然后可以在页面上触发任何必要的操作?

javascript activex

9
推荐指数
1
解决办法
5654
查看次数

如何将参数传递给批处理文件?

我需要在运行时将ID和密码传递给批处理文件,而不是将它们硬编码到文件中.

这是命令行的样子:

test.cmd admin P@55w0rd > test-log.txt
Run Code Online (Sandbox Code Playgroud)

arguments batch-file

1100
推荐指数
17
解决办法
180万
查看次数