目前我正在通过错误处理扩展我的JavaScript项目.该throw声明在这里发挥了重要作用:
throw new Error("text"); // Error: text
Run Code Online (Sandbox Code Playgroud)
但是,我还可以发出警告吗?我尝试了以下无济于事:
throw new Warning("text"); // Warning is not defined
Run Code Online (Sandbox Code Playgroud)
错误使Chrome的开发人员工具显示红叉,但如何让它显示警告图标(黄色感叹号)?
我知道标题可能看起来像苹果和橘子,但听我说... :)
我正在构建MVC应用程序的体系结构,并考虑将什么用于控制器/服务的核心.该堆栈还将用作RESTful API,与UI同样重要.
我正在缩小我的堆栈,用Grails或JAX-RS构建(此时我已经排除了其他选项,并且对扩展此列表并不感兴趣).无论哪种方式,我都将使用Groovy,我的模型和视图几乎不会受到这种选择的影响,因此可以进一步平衡两者之间的一些差异.以下是我一直在思考的优点/缺点,并且想知道是否有人有任何其他意见或警告经验.
看起来每个用于创建动作和路由的功能非常相似(尽管实现样式不同).事实上还有其他SO问题希望触及这一点,所以我不太关心.
我正在尝试重新制作所有拇指.我不确定为什么说密钥不存在.我正确配置了AWS-S3并且运行良好(我可以上传图片而没有任何问题.)
>> Attachment.all.each {|x|x.attachment.reprocess!}
AWS::S3::NoSuchKey: The specified key does not exist.
/app/d999782b-a789-4763-ac86-e8c65fa781eb/home/.bundle/gems/ruby/1.8/gems/aws-s3- 0.6.2/lib/aws/s3/error.rb:38:in `raise'
/app/d999782b-a789-4763-ac86-e8c65fa781eb/home/.bundle/gems/ruby/1.8/gems/aws-s3-0.6.2/lib/aws/s3/base.rb:72:in `request'
/app/d999782b-a789-4763-ac86-e8c65fa781eb/home/.bundle/gems/ruby/1.8/gems/aws-s3-0.6.2/lib/aws/s3/base.rb:88:in `get'
/app/d999782b-a789-4763-ac86-e8c65fa781eb/home/.bundle/gems/ruby/1.8/gems/aws-s3-0.6.2/lib/aws/s3/object.rb:134:in `value'
Run Code Online (Sandbox Code Playgroud)
当我尝试对单个对象做同样的事情似乎做得很好时,所以问题似乎与使用集合生成有关.
>> Attachment.last.attachment.reprocess!
=> true
Run Code Online (Sandbox Code Playgroud)
更新:我很确定这与上传的文件如.htm相关,这些文件应该是有效的图像文件.知道如何跳过它们吗?
我对汇编编程很新.我正在使用x86平台和GCC(Linux).
我有一个函数,我想从C调用:
myfunc ( unsigned char * s1, unsigned char * s2, int someint );
Run Code Online (Sandbox Code Playgroud)
该函数将获取s1和s2存储器位置并进行比较,然后递增和比较等,进行一些处理.这有点像memcmp,但我做得更多.
我的问题:如果我将指针传递给汇编函数?然后我怎么说"给我存储在这个内存地址的值"?
这是我到目前为止所拥有的:
要从堆栈中获取第一个函数arg("s1"),我这样做(someaddress是一个32位整数,我正在使用一个32位处理器):
movl 8(%esp), %ecx
movl %ecx, someaddress
Run Code Online (Sandbox Code Playgroud)
如果我把somevar成%eax(或%ebx等等),然后printf的它%p,我看到它的地址和无符号的字符指针"的地址,s1"我通过这都是一样的.但我怀疑我实际做的是获取内存地址,将其转换为整数,然后将该整数放入某个地址.
例如,如果我这样做:
movl pos1, %eax
movl pos2, %ebx
cmp (%eax),(%ebx)
Run Code Online (Sandbox Code Playgroud)
我得到"错误:'cmp'的内存引用太多了".我不完全确定这意味着什么,除了"你搞砸了";-)
所以...
*ptr在C中)我想查看LEA操作数吗?
我正在使用Richard Blum的"专业装配编程"作为我的向导,但Blum似乎并没有涵盖这种情况.
更新
非常感谢您的学习回应!
不幸的是,我仍然无法解除引用.
这是一个简化的例子.汇编函数接受指针并应该回显它.相反,我得到:
first_ptr points to 81 (should be 81) <-- from C program
the value is -1543299247 <-- printf called from within assembler
the …Run Code Online (Sandbox Code Playgroud) 我有一个网页,当你点击一个按钮时打开一个div.此div允许您将文件从桌面拖到其区域; 然后该文件上传到服务器.我正在使用Selenium的Ruby实现.
通过在Firefox中使用JavaScript调试器,我可以看到一个名为"drop"的事件正被传递给某些JavaScript代码"handleFileDrop(event)".我假设如果我要创建一个模拟事件并以某种方式触发它我可以触发此代码.
如果发现一篇有趣的文章似乎指向了一个充满希望的方向,但我仍然没有把它全部搞清楚.我可以使用Selenium的get_eval方法将JavaScript传递给页面.使用this.browserbot调用方法可以获得我需要的元素.
所以:
我想使用一些旧的gcc版本中没有的gcc警告开关(例如-Wtype-limits).
是否有一种简单的方法来检查gcc版本,如果使用最近的gcc,只添加那些额外的选项?
在git中,如果我的索引中存在来自同一文件的几个帅哥,我怎么能以交互方式取消其中一个呢?
是否可以替换整个文件,然后重新暂存我想要保留的数据,或者手动撤消对工作副本的更改,然后以交互方式添加这些撤消的更改?
所以我有大量的XML文件.多年来,他们造成了麻烦,因为写这些人的人手工完成,所以错误自然而然地发生了.我们现在应该验证它们并在尝试使用这些XML文件时提供有关错误的反馈.
我正在使用SAX解析器并获取错误列表.
以下是我的代码
BookValidationErrorHandler errorHandler = new BookValidationErrorHandler();
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(true);
factory.setNamespaceAware(true);
SchemaFactory schemaFactory =
SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
factory.setSchema(schemaFactory.newSchema(
new Source[] {new StreamSource("test.xsd")}));
javax.xml.parsers.SAXParser parser = factory.newSAXParser();
org.xml.sax.XMLReader reader = parser.getXMLReader();
reader.setErrorHandler(errorHandler);
reader.parse(new InputSource("bad.xml"));
Run Code Online (Sandbox Code Playgroud)
前几个错误始终是:
行号:2:文档无效:未找到语法.行号:2:文档根元素"信用",必须与DOCTYPE根"null"匹配.
我们不可能去编辑需要检查的数千个XML文件.
有什么我可以轻松添加到源的前面以防止这种情况吗?有没有办法告诉解析器忽略这些与DTD相关的错误?甚至不确定语法是什么意思.我有点理解第二个意味着什么.
List和cons运算符(:)在Haskell中非常常见.缺点是我们的朋友.但有时我想添加到列表的末尾.
xs `append` x = xs ++ [x]
Run Code Online (Sandbox Code Playgroud)
遗憾的是,这不是实施它的有效方式.
我在Haskell中写了Pascal的三角形,但我不得不使用++ [x]反成语:
ptri = [1] : mkptri ptri
mkptri (row:rows) = newRow : mkptri rows
where newRow = zipWith (+) row (0:row) ++ [1]
Run Code Online (Sandbox Code Playgroud)
imho,这是一个可爱的可读Pascal的三角形和所有,但反成语让我烦恼.有人可以向我解释(并且,理想情况下,指向一个很好的教程)关于您想要有效追加到最后的情况下的惯用数据结构吗?我希望这个数据结构及其方法具有近似列表般的美感.或者,或者,向我解释为什么这种反成语对于这种情况实际上并不坏(如果你认为是这种情况).
[编辑]我最喜欢的答案是Data.Sequence,它确实具有"近似列表般的美丽".不确定我对操作所要求的严格程度.随时欢迎进一步的建议和不同的想法.
import Data.Sequence ((|>), (<|), zipWith, singleton)
import Prelude hiding (zipWith)
ptri = singleton 1 : mkptri ptri
mkptri (seq:seqs) = newRow : mkptri seqs
where newRow = zipWith (+) seq (0 <| seq) |> 1 …Run Code Online (Sandbox Code Playgroud)