有没有一种方法来处理错误SYBASE
,比如TRY-CATCH
,你可以在使用块MS SQL Server
,Oracle
等等?
我已经在网上搜索过,发现的唯一选择是global变量@@error
,但是它没有按我预期的那样工作,例如,以下代码:
begin tran
update table1
set name = 'new name'
where name = 'old name'
update table2
set id = 1
where id = 30
-- suppose id has a unique constraint and there's already a row with id = 1
IF @@error = 0
begin
print 'commited'
commit
end
else
begin
print 'rolled back'
rollback
end
确实会以某种方式回滚,因为我在table1上更改的名称保留了我在此处进行测试时的旧值,但是它不会打印消息,也不会执行我在导致错误的指令之后放置的任何指令
有人可以帮我吗?您知道Sybase错误处理是如何工作的吗?
第一种解决方案。
您无法以这种方式在Sybase上捕获异常。在更新之前,您必须检查数据:
if not exists
(
select 1 from table2
where id = 1
)
begin
update table2
set id = 1
where id = 30
end
else
begin
print 'rolled back'
rollback
end
第二解决方案。
您还可以在过程中添加更新命令,然后可以捕获异常。创建过程:
create procedure myproc
as
begin
update table2
set id = 1
where id = 30
end
并如下运行:
begin tran
update table1
set name = 'new name'
where name = 'old name'
exec myproc
IF @@error = 0
begin
print 'commited'
commit
end
else
begin
print 'rolled back'
rollback
end
我们在sybase ASE15.0中得到错误605 服务器错误: 605,严重性: 21,状态: 1 server试图从缓存“默认数据缓存”中提取逻辑页“64000”。页面属于数据库“testdb”(30)、对象“”(0)、索引“”(1)、分区“”(1836412015),而不属于数据库“testdb”(30”、对象“(99)、索引(0)和分区“””(99)。 我们如何修复上述错误?
问题内容: 解析器不知道要做什么时的默认行为是将消息打印到终端,例如: 第1:23行在“}”处缺少DECIMAL 这是一个很好的信息,但是在错误的位置。我宁愿将此作为例外。 我尝试使用,但是会抛出一个没有消息的消息(由引起,也没有消息)。 有什么办法可以让我通过异常报告错误,同时又保留消息中的有用信息? 这就是我真正想要的—我通常在规则中使用动作来构建对象: 然后,当我调用解析器时,我将执行以下操
问题内容: 我有一系列要解决的承诺 我继续继续诺言链。看起来像这样 我想添加一个catch语句来处理单个promise,以防万一出错,但是当我尝试时,返回它发现的第一个错误(忽略其余的),然后我无法从其余的promise中获取数据数组(没有错误)。 我尝试做类似.. 但这并不能解决。 谢谢! - 编辑: 下面的答案完全正确,但代码由于其他原因而中断。如果有人感兴趣,这就是我最终得到的解决方案… 节
问题内容: jQuery的getScript函数似乎不支持错误回调函数。我不能在这里使用全局ajax错误处理代码,局部错误功能将是理想的选择。 回调获取data / textStatus的文档似乎不正确-回调均不获取。 关于如何检测到对getScript的调用失败的任何建议(例如,服务器不可用)? 编辑:仅查看源代码,似乎回调仅在成功时才调用,数据始终设置为null且未定义textStatus(因
Ansible 通常默认会确保检测模块和命令的返回码并且会快速失败 – 专注于一个错误除非你另作打算. 有时一条命令会返回 0 但那不是报错.有时命令不会总是报告它 ‘改变’ 了远程系统.本章节描述了 如何将 Ansible 处理输出结果和错误处理的默认行为改变成你想要的. 忽略错误的命令 New in version 0.6. 通常情况下, 当出现失败时 Ansible 会停止在宿主机上执行.有
问题内容: 我正在使用Restify和Mongoose创建一个API ,而这两个都是我的新手。我似乎无法找出正确的方法来处理Mongoose / Node中的错误。 到目前为止,我正在尝试执行以下操作: 我正在尝试为此调用GET(针对不存在的用户)。而不是发送回简单的错误消息,而是导致整个节点应用程序失败。我对return next(err)的用户以及应该怎么做感到困惑。 任何帮助是极大的赞赏。