我似乎无法找到有关自定义异常类的更多信息.
我所知道的
您可以声明自定义错误类并让它继承StandardError
,因此它可以是rescue
d:
class MyCustomError < StandardError
end
Run Code Online (Sandbox Code Playgroud)
这允许您使用以下方法来提高它:
raise MyCustomError, "A message"
Run Code Online (Sandbox Code Playgroud)
然后,在救援时获取该消息
rescue MyCustomError => e
puts e.message # => "A message"
Run Code Online (Sandbox Code Playgroud)
我不知道的
我想给我的异常一些自定义字段,但我想message
从父类继承该属性.我发现阅读关于这个主题是@message
不是异常类的实例变量,所以我很担心我的遗产将无法正常工作.
谁能给我更多细节呢?如何使用object
属性实现自定义错误类?以下是正确的:
class MyCustomError < StandardError
attr_reader :object
def initialize(message, object)
super(message)
@object = object
end
end
Run Code Online (Sandbox Code Playgroud)
然后:
raise MyCustomError.new(anObject), "A message"
Run Code Online (Sandbox Code Playgroud)
要得到:
rescue MyCustomError => e
puts e.message # => "A message"
puts e.object # => anObject
Run Code Online (Sandbox Code Playgroud)
它会起作用,如果确实如此,这是正确的做事方式吗?
ruby inheritance exception-handling exception custom-exceptions
我有一个看起来像这样的角度模板......
<div ng-repeat="message in data.messages" ng-class="message.type">
<div class="info">
<div class="type"></div>
<div class="from">From Avatar</div>
<div class="createdBy">Created By Avatar</div>
<div class="arrowTo">
<div class="arrow"></div>
<div class="to">To Avatar</div>
</div>
<div class="date">
<div class="day">25</div>
<div class="month">Dec</div>
</div>
</div>
<div class="main">
<div class="content">
<div class="heading2">{{message.title}}</div>
<div ng-bind-html="message.content"></div>
</div>
</div>
<br />
<hr />
<br />
</div>
Run Code Online (Sandbox Code Playgroud)
我已经设置了一个JSfiddle来显示绑定的数据.
我需要做的是根据数据的内容有条件地显示"from","to"和"arrowTo"div.
这是日志......
或者用简单的英语,如果有来自地址,则显示它,否则显示谁创建了记录,如果有地址,那么也显示.
我已经研究过使用ng-switch,但我认为我必须添加额外的标记,如果没有数据则会留下空div.另外,我需要嵌套切换指令,我不确定这是否有效.
有任何想法吗?
更新:
如果我要编写自己的指令(如果我知道如何!)那么这里有一些伪代码来说明我将如何使用它...
<div ng-if="showFrom()">
From Template Goes Here
</div>
<div ng-if="showCreatedBy()">
CreatedBy Template Goes Here
</div>
<div ng-if="showTo()">
To …
Run Code Online (Sandbox Code Playgroud) 我即将将一堆项目从.NET 4.0 + MVC 3迁移到.NET 4.5.2 + MVC5.
为了使这更容易,我创建了一个新的空白MVC项目来比较DLL引用和其他一些东西,如web.config.
在后者中,Visual Studio生成以下条目:
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>
Run Code Online (Sandbox Code Playgroud)
但我不知道这究竟是什么.MVC 3项目不包含这些部分.我的理解是它与Roslyn有关吗?
我的目标是建立一个年度cronjob,根据年龄从数据库中删除某些数据.在我看来,我拥有Bash和MySQL的强大功能.我开始编写一个bash脚本,但后来让我感到震惊的是,我可以用一个SQL查询完成所有工作.
我本质上更像程序员而且我对数据结构没有太多经验,所以这就是我想要一些帮助的原因.
此查询的相关表和列如下:
注册:
+-----+-------------------+
| Id | Registration_date |
+-----+-------------------+
| 2 | 2011-10-03 |
| 3 | 2011-10-06 |
| 4 | 2011-10-07 |
| 5 | 2011-10-07 |
| 6 | 2011-10-10 |
| 7 | 2011-10-13 |
| 8 | 2011-10-14 |
| 9 | 2011-10-14 |
| 10 | 2011-10-17 |
+-------------------------+
Run Code Online (Sandbox Code Playgroud)
AssociatedClient:
+-----------+-----------------+
| Client_id | Registration_id |
+-----------+-----------------+
| 2 | 2 |
| 3 | 2 |
| 3 | …
Run Code Online (Sandbox Code Playgroud) 我正在XDocument
尝试删除xmlns=""
第一个内部节点上的属性:
<Root xmlns="http://my.namespace">
<Firstelement xmlns="">
<RestOfTheDocument />
</Firstelement>
</Root>
Run Code Online (Sandbox Code Playgroud)
所以我想要的结果是:
<Root xmlns="http://my.namespace">
<Firstelement>
<RestOfTheDocument />
</Firstelement>
</Root>
Run Code Online (Sandbox Code Playgroud)
doc = XDocument.Load(XmlReader.Create(inStream));
XElement inner = doc.XPathSelectElement("/*/*[1]");
if (inner != null)
{
inner.Attribute("xmlns").Remove();
}
MemoryStream outStream = new MemoryStream();
XmlWriter writer = XmlWriter.Create(outStream);
doc.Save(writer); // <--- Exception occurs here
Run Code Online (Sandbox Code Playgroud)
在尝试保存文档时,我得到以下异常:
在同一个start元素标记内,前缀''不能从''重新定义为' http://my.namespace '.
这甚至意味着什么,我该怎么做才能消除那些麻烦xmlns=""
?
xmlns
删除特定xmlns
的文件,文件中没有其他属性.我尝试过使用这个问题的答案启发的代码:
inner = new XElement(inner.Name.LocalName, inner.Elements());
Run Code Online (Sandbox Code Playgroud)
调试时,该xmlns …
所以我将Resharper升级到版本10(在VS2015上),现在单元测试不再显示我们所有解决方案中的输出:
这非常烦人,因为我想看看测试失败的原因.现在的解决方法是使用新的"堆栈跟踪浏览器",其结果是可见的.
奇怪的是,当我创建一个全新的解决方案并编写一个简单的测试时,输出窗口仍然可以正常工作!
有任何想法吗?这可能是配置问题吗?
我在C#(虚拟代码)中定义了从/到某个类型的隐式字符串转换:
public class MyType
{
public string Value { get; set; }
public static implicit operator MyType(string fromString)
{
return new MyType { Value = fromString };
}
public static implicit operator string(MyType myType)
{
return myType.Value;
}
}
Run Code Online (Sandbox Code Playgroud)
在外部库代码的某处,将一个实例MyType
作为object
参数传递给方法.该方法的一部分看起来像这样的东西:
private void Foo(object value)
{
// ... code omitted
var bar = value as string // note that value is an instance of MyType at runtime
if(bar != null) // false, cast fails
{
// ... …
Run Code Online (Sandbox Code Playgroud) 在HAML中包含javascript或CSS时,通常必须执行以下操作才能包含CSS:
%link{:type => "text/css", :rel => "stylesheet", :href => "/css/mycss.css"}
Run Code Online (Sandbox Code Playgroud)
对于javascript:
%script{:type => "text/javascript", :src => "/js/myscript.js"}
Run Code Online (Sandbox Code Playgroud)
如果HAML没有包括这些标签的短的路我不知道(从课程的源获取内容,而不是内联),省略了必要的type
和rel
属性,因为这些是不变的反正.
请注意,Ruby on Rails通过函数提供此功能,但我不使用rails.
我真的很喜欢bash,但这是学校的主题之一.其中一项练习是:
给出文件"/ etc/passwd"的行号,其中有关您自己的登录信息.
假设USERNAME
是我自己的登录ID,我能够以这种方式完美地完成它:
cat /etc/passwd -n | grep USERNAME | cut -f1
Run Code Online (Sandbox Code Playgroud)
这只是简单地给出了所需的行号(可能有更优化的方式).然而,我想知道,如果有一种方法可以使命令更通用,那么它使用输出whoami
来表示grep模式,而无需编写脚本或使用变量.换句话说,要保持它易于阅读的单行命令,如下所示:
cat /etc/passwd -n | grep (whoami) | cut -f1
Run Code Online (Sandbox Code Playgroud)
对不起,如果这是一个真正的菜鸟问题.
所以我很惊讶在谷歌和stackoverflow上搜索不会返回更多结果.
在OO编程中(我使用的是java),你如何正确地实现一对多关系?
我有班级Customer
和班级Job
.我的申请是为一家为客户完成工作的虚构公司.我当前的实现是这样的,这个Job
类与该类没有任何关系Customer
,根本没有引用它.本Customer
类使用的集合和方法来保存,检索和修改有关已被分配和/或完成客户作业的信息.
问题是,如果我想知道某个特定客户Job
已经完成了怎么办?我只发现了相关的这篇文章:http://www.ibm.com/developerworks/webservices/library/ws-tip-objrel3/index.html.
根据作者的实现,我会让Job
构造函数接受一个Customer
参数,然后存储它以便我可以检索它.但是,我完全不能保证这个模型可以保持一致.没有任何决定可以将作业的相关客户设置为作业不适用的客户,并将作业添加到为其他人完成的客户.任何有关这方面的帮助将不胜感激.
.net ×3
bash ×2
c# ×2
ruby ×2
angularjs ×1
asp.net-mvc ×1
casting ×1
codedom ×1
exception ×1
grep ×1
haml ×1
inheritance ×1
java ×1
javascript ×1
linq-to-xml ×1
mysql ×1
nunit ×1
one-to-many ×1
oop ×1
pipe ×1
relationship ×1
resharper ×1
sql ×1
types ×1
unit-testing ×1
unix ×1
web-config ×1
xml ×1