我有一个VB6类与一个引发错误的方法:
Public Sub DoSomething
...
err.Raise 12345, description:="Error message"
...
End Sub
Run Code Online (Sandbox Code Playgroud)
从以下形式调用此方法:
Public Sub ErrTest()
On Error Goto err1
obj.DoSomething
Exit Sub
err1:
MsgBox err.Description
End Sub
Run Code Online (Sandbox Code Playgroud)
这在运行时工作正常,但在设计时错误处理不起作用.相反,VB6 IDE显示其标准消息框,从那里我可以进入调试模式或结束程序.
为什么会这样?我能预防吗?
对不起,如果这是一个comp-sci 101问题.我只是不确定我是否遗漏了一些明显的东西.
所以让我们说一些用户输入会抛出错误,我想抓住它并返回一些反馈.错误将是一个数字,0 - 8. 0表示"无错误".如果错误是3,我想给用户非常具体的反馈(不允许数字,让我们说).对于其他7种可能性,我只想结束脚本并回显错误.
我正在解决这个问题并决定采用这种方式:
$no_errors ($_error != 0 || $_error != 3) ? FALSE : TRUE;
if (!$no_errors)
echo $error_msg['$_error'];
$error_3 ($no_errors && $_error == 3) ? TRUE : FALSE;
if ($error_3)
bunch of stuff happens;
else
bunch of other stuff;
Run Code Online (Sandbox Code Playgroud)
无论如何,我当时注意到第一行的OR运算符,并且认为使用AND运算符可能更好/更安全.但是我想的越多,我看到的差别越小.
所以真正的问题是,如果你想消除特定变量的两种可能性,那么AND和OR是相同的,还是逻辑上/功能上更优化?
我有一个巨大的文件,有很多链接到各种类型的文件下载.每行是一个下载命令,如:
wget'URL1'
wget'URL2'
...
并且有成千上万的人.
不幸的是,有些网址看起来很丑陋,例如:http: //www.cepa.org.gh/archives/research-working-papers/WTO4%20(1)-charles.doc 它在浏览器中打开,但令人困惑wget的.
我收到一个错误:
./tasks001.sh:35行:意外标记"1"附近的语法错误
./tasks001.sh:线35:`wget的' http://www.cepa.org.gh/archives/research-working-papers/WTO4%20(1)-charles.doc ''
我已尝试使用URL和"URL"方式指定要下载的内容.
有没有办法让像这样的脚本无人值守?我很好,如果它只是跳过它无法下载的文件.
目前,当我的rails应用程序遇到错误时,它会将错误代码和堆栈跟踪转储到浏览器窗口.
如何将其关闭以使这些错误仅记录在日志中而不输出到浏览器?
谢谢
更正:我主要关心的只是验证错误.我想要的就是使用生成的脚手架时获得的相同功能.我想显示验证错误消息并突出显示有问题的表单字段.现在,我得到的是这个标准的开发错误输出.最初这是在我的应用程序上工作但不知何故它丢失了.
考虑这个在实际工作之前检查错误的C结构:
int function(struct Context *context,struct Connection *conn)
{
int retval;
switch(0)
{
case 0:
retval = BUFFER_INACTIVE;
if(conn->mSocket == -1)
break;
retval = BUFFER_FULL;
/* Is there enough room to add ? */
if((context->mMaxBufferSize - conn->mSendPacketLength) < aPacketLength)
break;
/* Is the send packet buffer half sent? */
if(conn->mSendPacketLength > 0 && conn->mSendPacketPos != conn->mSendPacket)
break;
/* Do some work here */
retval = BUFFER_DONE;
}
/* Do some things before returning */
printf("%d",retval);
return retval;
}
Run Code Online (Sandbox Code Playgroud)
你认为这是可读的吗?使用goto或堆叠的替代品 …
我使用的是JDK1.6_14.这是一个普遍的问题.
何时进行错误处理以及何时进行异常处理?
例如,当我执行除法运算时,我可以检查分母是否为零并抛出错误或只是处理ArithmeticException.
但什么时候去哪个方法?
谢谢.
有没有办法通过在母版页中编写一些代码来在Web应用程序中全局捕获Javascript错误?
我有一个像这样的javascript代码来验证我的用户在我的服务器上上传图片时的文件扩展名.它应该允许.jpg和.jpeg照片但是只接受.jpg文件,如果照片以.jpeg结尾则无效这是代码:
function validate(x) {
var extensions = new Array("jpg", "jpeg");
var pos = x.lastIndexOf('.') + 1;
var ext = x.substring(pos, x.length);
var final_ext = ext.toLowerCase();
for (i = 0; i < extensions.length; i++) {
if (extensions[i] != final_ext) {
return 0;
break;
}
return 1;
}
Run Code Online (Sandbox Code Playgroud)
你觉得这个问题是什么?
通常我会在课堂上,每个method(try和catch)中尽我所能.我做错了吗?最近我听说更好的方法是在程序体中处理错误...
什么是好习惯?
在Web App设计方面,我最近一直在阅读有关最佳实践的大量内容.我的专业语言是PHP/MySQL.在为我正在开发的应用程序创建MVC架构时,我总是遇到存储无效表单提交的位置的问题(这样用户就不必重新输入数据,并且可以显示有用的错误消息) .
通常我已经决定将它作为序列化对象存储在SESSION变量中,但是我的最新阅读告诉我会话很糟糕并且从无状态Web开发中拿走了.我想到的一些选择是:
他们都有自己的缺点.
你会推荐什么?
error-handling ×10
javascript ×2
php ×2
asp.net ×1
c ×1
file-upload ×1
frameworks ×1
global ×1
goto ×1
ide ×1
java ×1
logic ×1
mysql ×1
shell ×1
validation ×1
vb6 ×1
wget ×1