小编eno*_*rev的帖子

为什么说Exceptions对于输入验证是如此糟糕?

据我所知,"例外是特殊情况下" [1],但除了只是被重复一遍,我从来没有发现这一事实的实际原因.

作为他们停止执行,这是有道理的,你会不会希望他们为平原的条件逻辑,但为什么不输入验证?

假设你通过一组输入是循环和捕捉每个异常将它们组合在一起的用户通知...我不断地看到,这是某种"错误的",因为用户输入不正确输入所有的时间,但是这点似乎是基于在语义上.

输入不是预期的,因此是例外.抛出一个异常,让我解释清楚到底发生了什么事像StringValueTooLong或或IntegerValueTooLow或InvalidDateValue或什么的.为什么这被认为是错的?

替代抛出一个异常,将回移(最终收集)错误代码或差远了错误的字符串.然后我会直接显示这些错误字符串,或者解析错误代码然后向用户显示相应的错误消息.不会将异常视为可延展的错误代码吗?为什么要创建的错误代码和消息一个单独的表,当这些可以与例外的功能被推广已经内置到我的语言?

另外,我发现Martin Fowler的这篇文章是关于如何处理这些事情 - 通知模式.我不确定我是如何将此视为除了不停止执行的异常之外的任何东西.

a:我到处都读过有关例外的内容.

---编辑---

已经提出了许多重点.我对大多数事情都有评论,而且还有优点,但我还不完全相信.

我并不是要提倡将Exceptions作为解决输入验证的正确方法,但我想找到很好的理由,为什么这种做法被认为是如此邪恶,因为似乎大多数替代解决方案只是伪装的例外.

validation error-handling exception

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

如何禁用Tortoise BZR?

我是bzr的忠实粉丝,我很高兴他们正在为它做乌龟,但目前它的使用方式太慢了.这些图标几乎总是不正确的,当我在资源管理器中加载一个带有很多分支的目录时,它会将整个系统锁定10秒到2分钟.我期待将来再次尝试,但是现在我想禁用它.

不幸的是我没有在添加/删除程序中看到它,我找不到在bazaar配置目录中禁用它的方法.当我右键单击任务面板中的图标(按时钟)并选择"退出程序"时,它会在稍后重新启动.我也没有在"服务"面板中看到它.有没有办法禁用它?

我在有问题的系统上运行Windows XP.

windows-xp tortoisebzr

10
推荐指数
1
解决办法
2851
查看次数

android选择器的自定义项状态

我看到选择器的例子使用像'selected'这样的android状态来定义样式.这是一个简化的例子:

<selector>
    <item android:state_selected="true" android:drawable="@color/transparent" />
    <item android:drawable="@drawable/listitem_normal" />
</selector>
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:我可以定义和使用我自己的状态而不是

android:state_selected="true"
Run Code Online (Sandbox Code Playgroud)

我的目标是根据整数值为形状着色,就像这个热图的简单版本一样: 替代文字

android coding-style selector heatmap

4
推荐指数
1
解决办法
2894
查看次数

多重振幅淡入淡出在 ecasound 上如何工作?

我想在特定的时间代码淡入和淡出曲目。例如,我想要一个音频文件,并且:

Start it at 100% Volume 
Fade it to 20%  at 2 seconds
Fade it to 100% at 4 seconds
Fade it to 20%  at 6 seconds
Fade it to 100% at 8 seconds
Fade it to 20%  at 10 seconds
Fade it to 100% at 12 seconds
Fade it to 0 at 14 seconds
Run Code Online (Sandbox Code Playgroud)

我一直在使用 ecasound 生成的恒定音调进行测试,以便我可以在 Audacity 中打开生成的文件并直观地查看结果。据我所知,增加振幅是相对的,而减少振幅则不是。似乎如果我将幅度淡入淡出,它会影响整个音轨的相对音量,而不仅仅是在我设置淡入淡出的特定时间,这就是我迷失的地方。

命令示例

# generate the tone
ecasound -i tone,sine,880,20 -o:tone.wav

# Just the test to see that i can fade start …
Run Code Online (Sandbox Code Playgroud)

audio command-line fadeout fadein

4
推荐指数
1
解决办法
562
查看次数

如何在PHP MYSQL中将数据库表和每条记录从一个数据库服务器复制到另一个数据库服务器?>

您好我已经编写了一个代码,可以将数据库表从一个服务器复制到另一个服务器,但每个表的记录没有复制如何写一个函数,可以将表和每个记录从一个数据库服务器复制到另一个数据库?

这是我的示例代码:

<?php
$dbNewDB = 'newdb';
$dbNewUser = 'newroot';
$dbNewUserPswd = 'newpass';

$dbConnect = mysql_connect('localhost', 'root', 'mypassword') or die('Couldn\'t connect to MySql:'.mysql_error());
$dbNewConnect = mysql_connect('localhost', $dbNewUser, $dbNewUserPswd) or die('Couldn\'t connect to MySql:'.mysql_error());

$sqlStatement = "SHOW TABLES FROM olddb";
$result = mysql_query($sqlStatement,$dbConnect) or die('Unable to get tables: '.mysql_error());
while($row = mysql_fetch_row($result)) 
    {
        //Drop table if exist
        $sqlStatement = "DROP TABLE IF EXISTS " . $dbNewDB . "." . $row[0];
        mysql_query($sqlStatement,$dbNewConnect) or die("Failed to delete: " . mysql_error());
        //Create new table
        $sqlStatement …
Run Code Online (Sandbox Code Playgroud)

php mysql database

3
推荐指数
1
解决办法
5279
查看次数

Firebug控制台缩短了数组中的字符串记录?

我有一个自定义日志记录功能,以登录到firebug控制台,如下所示:

// the name here is just for fun
function ninjaConsoleLog() {
    var slicer = Array.prototype.slice;
    var args = slicer.call(arguments);
    console.log(args);
}
Run Code Online (Sandbox Code Playgroud)

它的工作方式与我想要的完全相同....除非如果我的数组中的字符串值长于大约7个字,则firebug控制台会隐藏字符串值,除了前两个单词和后两个单词.(约)

例:

ninjaConsoleLog("This is a longish string, like the energizer bunny, it just keeps going and going and going.");
Run Code Online (Sandbox Code Playgroud)

上述函数调用导致以下输出到firebug控制台:

["This is a longish strin...going and going."]
Run Code Online (Sandbox Code Playgroud)

这很好,除了有时控制台缩写的字符串部分包含重要数据.

首先,为什么会发生这种情况?

第二,使用我当前的日志记录功能,无论如何我可以强制控制台输出数组中每个项目的完整字符串值吗?或者只是在查看控制台的输出时查看整个字符串?

或者这不可能吗?

谢谢!!

javascript console firebug logging

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

使用javascript将光标隐藏在文本框中?

如何使用JavaScript在asp.net文本框中隐藏光标?我不想在文本框中看到眨眼的东西.

javascript

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