使构造函数抛出异常是一个好习惯吗?例如,我有一个类Person,我有age它的唯一属性.现在我提供课程为
class Person{
int age;
Person(int age) throws Exception{
if (age<0)
throw new Exception("invalid age");
this.age = age;
}
public void setAge(int age) throws Exception{
if (age<0)
throw new Exception("invalid age");
this.age = age;
}
}
Run Code Online (Sandbox Code Playgroud) 我在我的控制器中测试一个动作的单元测试,动作写入log4net.
当我运行我的动作时效果很好 - 写入log4net.
但是,当我运行单元测试时 - 该操作不会写入log4net但不会抛出任何异常.
有没有人有办法解决吗?
我正在使用 QSettings 在我的 GUI 中进行更改。目前我已经了解如何将 QSetting 用于基本的键=值对。
[button]
enable = 1
Run Code Online (Sandbox Code Playgroud)
但我想要有等级组。像下面这样
[user1]
[button1]
enable = 1
[button2]
enable = 0
[user2]
[button1]
enable = 1
[button2]
enable = 0
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
谢谢你 :)
我正在使用node-log4js.(这是log4JS,而不是log4J!)我认为记录器的"类别"就像你把Log4中的字符串放入记录器的构造函数中一样(通常你把你的fqn类名放在那里),这样log4j可以把记录的东西放进去到正确的位置.
我得到了以下配置:
{
"appenders": [
{
"type": "console",
},
{
"type": "file",
"absolute": true,
"filename": "/tmp/app.log",
"maxLogSize": 20480,
"backups": 10
},
{
"type": "console",
"category": "app.access"
}
]
}
Run Code Online (Sandbox Code Playgroud)
期望的行为是所有"app.access"内容只会转到最后一个appender(现在也是控制台,但是将来可能会改变).目前,具有"app.access"类别的所有记录将被记录两次到控制台,一次记录到文件.
有没有办法给那些其他两个appender一个"除app.access"以外的所有类别?怎么样?
非常感谢你提前
asp.net ×1
constructor ×1
exception ×1
ini ×1
java ×1
javascript ×1
log4js-node ×1
logging ×1
node.js ×1
qt ×1
unit-testing ×1