下面是一个NodeJS模块:
var plural = function(words, num) {
if (words.length != 3) {
throw new Error('Wrong words array');
}
var lastNum = num % 10;
var second = (num / 10) % 10;
if (second == 1)
return words[2]
else if (lastNum == 1)
return words[0];
在应用程序中抛出一般异常时,必须通过堆栈跟踪来确定抛出异常的位置和原因。
(...)通过自定义异常,我们可以很容易地识别异常来自应用程序的哪个部分。
我还是不明白。默认异常堆栈跟踪指示原始抛出异常的行。
function foo($i)
{
if ($i<0){
throw new Exception("<0");
}
if ($i>0){
throw new Exception(">0");
}
}
try {
foo(1);
} catch (Exce
如果我不想创建自定义异常,那么如何在捕获时区分它们?
if (somethingIsWrong)
throw new Exception("Something is wrong.");
else if (anotherthingIsWrong)
throw new Exception("Anotherthing is wrong.");
else
throw Exception("Nothing is wrong!");
// Now when catching them:
catch (Exception ex)
{
在下面的代码示例中,函数baz()抛出一个TypeError,当在fs.open回调中调用new Promise回调时,节点进程将立即退出,其值为非零,异常永远不会被捕获。
var Promise = require('bluebird');
var fs = require('fs');
function baz() {
[].toDateString(); // should throw type error
}
function bar() {
return new Promise((resolve, reject) => {
f
给定以下代码:
var assert = require('assert');
function boom(){
throw new Error('BOOM');
}
assert.throws( boom(), Error );
我得到了这个输出,节点为0.4.9:
node.js:134
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: BOOM
at boom ([EDITED]/asse
我在我的单元测试中使用jest,当我的代码抛出一个意外的异常时,我有一个问题,jest不能处理它。 例如: async function func() {
throw new Error('ERROR');
}
test('test', async () => {
await func();
}); 我希望jest能告诉我哪里有异常,但我得到的结果是: TypeError: jasmine.Spec.isPendingSpecException is not a function
at returnValue.then.error
我有一个具有以下服务的exception.js脚本:
app.service('Exception', function() {
this.ArgumentUndefinedException = function (message) {
if (!message) {
message = "One or more of the arguments are undefined!";
}
return {
name: 'ArgumentUndefinedException',
我得到了这个类,它引发了相同类型的异常,我如何捕获这个异常并显示相应的错误消息。这就是我现在要做的。
public bool ChangePassword(oldPassword,newPassword)
{
if(oldPassword != savedInDatabase)
{
throw new ArgumentException("Your old password is not same as one saved in our database")
}
if(string.IsNullOrEmpty(oldPassword) || string.IsN
当我运行这段代码时:
throw 'a string';
我在我的终端上得到了这个堆栈跟踪:
$ node test.js
/home/user/test.js:2
throw 'a string';
^
a string
这里有文件名和出现此异常的行。
我正在尝试构建一个异常日志记录机制,当我使用uncaughtException处理程序时,我无法获得文件名和行。
process.on('uncaughtException', function() {
console.log(arguments);
});
throw 'a s
我相信我遵循了实现自定义异常的正确过程,但是异常到达包装在System.Exception中的catch块,因此不会执行对自定义异常的处理。
我创建了自定义异常类(以下示例可在网上找到):
using System;
using System.Runtime.Serialization;
namespace La.Di.Da
{
[Serializable]
public class MyCustomException : Exception
{
public MyCustomException()
: base()
我是编程新手,我正在尝试如何抛出自定义异常。我正在尝试解析XML节点的十进制值,并检查它是否小于0。如果值<=为0,我希望它抛出一条消息。在所有其他情况下,我想抛出一个默认的异常消息。
如下所示:
Parse the node
If node is nothing or contains nothing,
throw exception ("cant be blank")
else
try
decimalValue =decimal.parse(node)
If decimalValue < 0
then throw custom exception
我目前有一个类,它只抛出一种类型的异常,但具有不同的异常代码:
class Foo
{
public static function method($var)
{
if ($condition1) {
throw new FooException('XXX', 'FORMAT');
}
if ($condition2) {
throw new FooException('XXX', 'RANGE');
我目前正在尝试捕获一个属性是否被正确设置为布尔值,它应该是这样的……
public void RunBusinessRule(MyCustomType customType)
{
try
{
if (customType.CustomBoolProperty == true)
{
DoSomething();
}
else
{
throw new Exception("This is obviously false or possibly null l
他们已经是这个话题的一个问题了。
这是旧的,答案是非常过时的,domains甚至从那以后就不再推荐了。
现在,在后异步/等待Node.js场景中,我们不应该类似地考虑同步和异步情况,在同步函数中抛出异常并拒绝异步函数中的承诺,而不是在前一种情况下返回Error实例。
let divideSync = function(x,y) {
// if error condition?
if ( y === 0 ) {
// "throw" the error
throw new Error("Can't divide
允许使用自定义异常,异常抛出方式如下。
try
{
int foo = int.Parse(token);
}
catch (FormatException ex)
{
//Assuming you added this constructor
throw new ParserException(
$"Failed to read {token} as number.",
FileName,
LineNumber,
ex);
}
但在正常的try catch块中,它说抛出异常将清除堆栈跟踪。
t
我正在使用Sails.js来开发REST服务器。
为了便于使用和为了抽象起见,我想在控制器中抛出异常,例如:
// api/controllers/TempController.js
module.exports = {
index: function(request, response) {
throw new NotFoundException('Specific user is not found.');
throw new AccessDeniedException('You have no permissions to access
我有一些在Axis1.1上开发的few服务,我需要做一些更改。在此期间,我正在修复异常处理代码,但我不知道当出现错误时应该抛出哪种类型的异常。
我只需要将消息发送给客户端,我不需要担心异常中的堆栈跟踪和自定义信息。我不想处理扩展that错误,或提供失败的原因,以及所有那些令人讨厌的事情。
@WebMethod
public string[] myMethod() throws ..?.. {
throw new AxisFault(); // not recommended
throw new SOAPFaultException(); // seems overly gen
有一次我读到了一个,它鼓励了下面的编程范式(它不是100%正确的.见编辑):
public class MyClass
{
public void Method1()
{
NewCustomException();
}
public void Method2()
{
NewCustomException();
}
void NewCustomException()
{
throw new CustomException("Exception message");
在Node.js中,当你抛出一个异常但没有捕捉到它时,默认情况下你会得到如下显示:
C:\tptp-parser\index.js:19
throw e
^
SyntaxError: Unknown language (33:7)
at err (C:\tptp-parser\index.js:14:10)
at Object.parse (C:\tptp-parser\index.js:354:5)
at read (C:\tptp-parser\tptp-parser.js:14:15)
at Object.<anon
当使用throws关键字抛出一个自定义异常时,我需要显式地处理它,也就是说,我需要在try-catch块中调用该方法,但是当我使用throws关键字抛出一个内置异常时,如果我没有使用try-catch块在main方法中处理它,那么我不会得到任何编译时错误,运行时异常发生是可以接受的。我的问题是,当我不处理自定义异常时,我会得到一个编译时错误:未处理的异常。虽然这不是内置异常的情况
class B
{
public void show() throws ArithmeticException
{
throw new ArithmeticException();
我正在为我的WCF组件添加许可检查,并在System.ComponentModel命名空间中找到了System.ComponentModel。当用户输入无效的许可密钥时,我是否可以使用这个异常类,或者创建我自己的更好?
真的,我想为更一般的问题找到一个答案。抛出我可以在.NET中找到的任何类型的异常(例如,ExecutionEngineException )是否安全?
if (!LicenceHelper.CheckLicence())
throw new ApplicationException("Invalid Serial Key or Activation Key
我有两个(2)代码做同样的事情,但其中一个(Code01)在使用vscode中的调试器运行时会显示一个未察觉的异常,而另一个则不显示(Code02)。
有人能帮我理解一下这种区别吗?
// ./vscodeDebuggerAsyncCatchExceptionTest01.js
// "Code01" - This code has an uncaught exception.
"use strict";
async function thisThrows() {
throw new Error("Thrown from thisThrows()
我想实现我的自定义安全到wcf,我想使用ServiceAuthenticationManager,但我不明白它如何可以阻止消息。我试图抛出异常,但我不能得到我的异常详细信息我得到的只是“请求错误”在rest调用和“调用者没有被服务验证”在soap调用,但我不能得到我的自定义错误信息,ServiceAuthenticationManager的正确用法是什么,或者我应该阻止消息?
public class MyAuthenticationManager : ServiceAuthenticationManager
{
public override ReadOnlyCollection&
在检查作为string传递的参数时,您将抛出ArgumentException。
void CheckName(string name)
{
if (name != "Alice")
{
throw new ArgumentException("Name is not Alice.");
}
}
但是,当将模型(对象)传递给函数时,您检查了模型的属性并希望抛出异常。抛出哪个异常是正确的?它还是ArgumentException吗
void CheckUser(UserModel model)
{
if (model