这个尝试捕获
块似乎没有捕获发生的错误,这很奇怪,考虑到我对网站的注册部分有一个类似的尝试捕获
块。这将处理登录。该错误发生在第三行电子邮件:$scope.authInfo.email
并引发此错误:
Error: Firebase.authWithPassword failed: First argument must contain the key "email" with type "string"
当电子邮件格式错误时会发生这种情况,例如test@
。因此,当它是时,我希望在catch
块中设置错误消息。
有人知道为什么这个< code>try catch不起作用吗?
try {
$scope.syncAuth.$authWithPassword({
email: $scope.authInfo.email,
password: $scope.authInfo.password
}).then(function(authData) {
$scope.isSuccessful = true;
$scope.success = 'You have successfully logged in - Redirecting...';
$rootScope.loggedIn = true;
$timeout($scope.redirectUser, 3000);
}).catch(function(error) {
switch (error.code) {
case 'INVALID_USER': $scope.errors.push('The email you have entered is not a registered user.');
break;
case 'INVALID_PASSWORD': $scope.errors.push('Invalid password.');
break;
}
});
}
catch (err) {
$scope.errors.push('Invalid email format.')
}
在此处查看$auth Password
方法的源代码。正如您所看到的,如果错误将被抛出-Firebase将返回被拒绝的promise。因此,您可以在promise捕获块中处理您的错误:
$scope.syncAuth.$authWithPassword({
email: $scope.authInfo.email,
password: $scope.authInfo.password
})
.catch(function(error) {
switch (error.code) {
case 'INVALID_USER':
$scope.errors.push('The email you have entered is not a registered user.');
break;
case 'INVALID_PASSWORD':
$scope.errors.push('Invalid password.');
break;
default:
$scope.errors.push('Invalid email format.')
}
throw error;
})
.then(function(authData) {
$scope.isSuccessful = true;
$scope.success = 'You have successfully logged in - Redirecting...';
$rootScope.loggedIn = true;
$timeout($scope.redirectUser, 3000);
});
我们在SQL Server存储过程中使用以下错误处理模式: 但是当存储过程中出现以下错误时,try/catch块不起作用。 错误详细信息:存储过程试图将值插入非NULL列。 在执行存储过程中,我得到了以下错误 EXECUTE之后的事务计数表示BEGIN和COMMIT语句的数量不匹配。上一个计数=1,当前计数=0。 msg 3903, Level 16, State 1, Line 30 ROLLB
不管你多么精通编程,有时我们的脚本总还是会出现错误。可能是因为我们的编写出错,或是与预期不同的用户输入,或是错误的服务端响应以及其他数千种原因。 通常,如果发生错误,脚本就会“死亡”(立即停止),并在控制台将错误打印出来。 但是有一种语法结构 try..catch,它使我们可以“捕获(catch)”错误,因此脚本可以执行更合理的操作,而不是死掉。 “try…catch” 语法 try..catch
我正在尝试捕获caller方法中的IllegalAccessException。但它抓不到它。而是给出了一个错误。
我需要在我的存储过程中添加错误处理。我相信当只有一个insert语句时,通常不需要使用BEGIN TRAN/COMMIT TRAN。还有使用SET XACT_ABORT,NOCOUNT ON语句的意义是什么。请给出最佳/标准的方法将错误处理添加到下面的SP中。如果出现错误,我还需要在catch段中调用dbo.usp_get_error_info。请建议。
问题内容: 我最初从大学开始编程,然后学习了vb.net。现在,我决定转向Java并进行一些查询。在vb中,try catch语句的布局如下 但是在Java网站(https://docs.oracle.com/javase/tutorial/essential/exceptions/putItTogether.html)中,我发现在Java中,您使用了两个陷阱,如下所示: 我希望有人能够解释为什么
问题内容: 在一个教程中,我发现 您的代码无法处理Unchecked Exception, 即我们不能使用块,示例是类似的异常,但是可以使用try / catch块处理这些异常。我认为我不清楚这个概念! 我也认为throw关键字只能与block.can一起使用吗? 问题答案: 已检查和未检查的异常之间的唯一区别是,必须使用捕获或在方法签名中声明 已 检查的异常,而对于未检查的异常,这是可选的。 您