现在我的网页看起来像这样: if($_GET['something'] == 'somevalue') { $output .= 'somecode'; // make a DB query, fetch a row //… $row = $stmt->Fetch(PDO::ASSOC); if($row != null) { $output .= 'morecode'; if(somethingIsOK()) { $output .= 'yet more page output'; } else { $error = 'something is most definitely not OK.'; } } else { $error = 'the row does […]
你如何在你曾经使用过的C#项目中使用Exception.Data属性? 我想要提供一个模式的答案,而不是那些非常特定于您的应用程序的答案。
所以我不确定我要告诉你们什么,如果你需要更多的代码,请不要犹豫,问问: 所以这个方法将在我们的应用程序中为Zend设置initMailer: protected function _initMailer() { if ('testing' !== APPLICATION_ENV) { $this->bootstrap('Config'); $options = $this->getOptions(); $mail = new Zend_Application_Resource_Mail($options['mail']); }elseif ('testing' === APPLICATION_ENV) { //change the mail transport only if dev or test if (APPLICATION_ENV <> 'production') { $callback = function() { return 'ZendMail_' . microtime(true) .'.tmp'; }; $mail = new Zend_Mail_Transport_File( array('path' => '/tmp/mail/', […]
在我工作的应用程序中,任何业务逻辑错误都会导致引发exception,并且调用代码处理exception。 这种模式在整个应用程序中使用,运作良好。 我有一种情况,我将试图从业务层内执行一些业务任务。 对此的要求是一个任务的失败不应该导致该过程终止。 其他任务仍然应该能够执行。 换句话说,这不是一个primefaces操作。 我遇到的问题是,在操作结束时,我希望通知抛出exception的调用代码,确实发生了exception。 考虑下面的伪代码片段: function DoTasks(MyTask[] taskList) { foreach(MyTask task in taskList) { try { DoTask(task); } catch(Exception ex) { log.add(ex); } } //I want to throw something here if any exception occurred } 我扔什么? 我以前在职业生涯中遇到过这种模式。 在过去,我保存了所有exception的列表,然后抛出一个包含所有捕获的exception的exception。 这似乎不是最优雅的方法。 从每个例外中保留尽可能多的细节以呈现给调用代码是很重要的。 思考? 编辑:解决scheme必须使用.Net 3.5编写。 我不能使用任何beta库,或者如Bradley Grainger所提到的.Net 4.0中的AggregateException(下面),这将是集合exception抛出的一个很好的解决scheme。
有人能告诉我为什么这个unit testing检查exception失败吗? 显然,我真正的testing是检查其他代码,但我使用Int32.Parse来显示问题。 [Test] public void MyTest() { Assert.That(Int32.Parse("abc"), Throws.Exception.TypeOf<FormatException>()); } testing失败,给出这个错误。 很明显,我正在尝试testing这个exception,我想我的语法错过了一些东西。 Error 1 TestCase '.MyTest' failed: System.FormatException : Input string was not in a correct format. at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.Int32.Parse(String s) 基于Throws Constraint(NUnit 2.5)的文档,
我一直在阅读关于exception及其使用的一些问题和答案。 似乎是一个强烈的意见,认为只有例外,未经处理的案件才能提出例外。 所以这导致我想知道如何validation与业务对象的工作。 比方说,我有一个业务对象的getters / setter对象的属性。 假设我需要validation值在10到20之间。这是一个业务规则,所以它属于我的业务对象。 所以这似乎暗示我的validation码在我的设置。 现在我有我的UI数据绑定到数据对象的属性。 用户input5,所以规则需要失败,用户不能移出文本框。 。 UI是数据绑定到属性,所以setter将被调用,规则检查和失败。 如果我从业务对象中提出exception来说规则失败,那么UI将会select这个exception。 但这似乎违背例外的首选用法。 鉴于这是一个二传手,你不会有一个“结果”的二传手。 如果我在对象上设置另一个标志,那么这意味着UI必须在每个UI交互之后检查该标志。 那么validation如何工作呢? 编辑:我可能在这里使用了一个过度简化的例子。 类似上面的范围检查可以很容易地由用户界面处理,但如果这种情况更复杂,例如,业务对象根据input计算一个数字,如果计算出的数字超出范围,则应该被拒绝。 这是更复杂的逻辑,不应该在UI中。 还根据已经input的字段考虑进一步input数据。 例如,我必须在订单上input一个项目,才能获得库存量,当前成本等特定信息。用户可能需要这些信息来决定进一步input(需要订购多less个单位),或者可能需要订购为了进一步validation完成。 如果该项目无效,用户是否可以input其他字段? 重点是什么?
我最近得到了一台新的Windows电脑,并安装了php symfony框架。 当尝试使用新命令C:> php symfony new blog我收到错误消息[GuzzleHttp\Ring\Exception\RingException] cURL error 60: SSL certificate problem: unable to get local issuer certificate 。 在这个例子中,我不知道该怎么做,因为我对CMD接口不太了解。 我需要知道,如果这是一个窗口或symfony本身的错误,我可以采取任何可能的路线来解决它。
我正在与JXL API的应用程序,当我尝试编译使用Eclipse IDE,它工作正常,同样不编译当我试图编译命令提示符,并显示下面的exception。 Extract.java:6: cannot access jxl.read.biff.BiffException bad class file: C:\Program Files\Java\jdk1.5.0_01\jre\lib\ext\jxl.jar(jxl/read/biff/BiffException.class) class file has wrong version 50.0, should be 49.0 Please remove or make sure it appears in the correct subdirectory of the classpa th. import jxl.read.biff.BiffException; ^ 1 error 编辑: 我能够使用JDK 1.6执行。 由于JDK 1.6还必须兼容较低版本,为什么它不支持在JDK 1.5中编译的类文件。
我很清楚,不应该在析构函数中抛出任何exception。 但是作为抓住这个概念的一部分,我编码了这个例子: #include <iostream> using namespace std; class A { private: int i; public: A() { i = 10; } ~A() { throw 30; } }; int main(){ try{ A(); throw 10; } catch (int i){ cout << i << endl; cout << "exception caught" << endl; } } 根据我的理解,这个程序应该通过调用std :: terminate()来终止,因为同时会有两个exception。 但是,这个程序是给出以下输出: 30 exception […]
我正在使用Facebook Graph Api并试图获取用户数据。 我发送用户访问令牌,万一这个令牌过期或无效的Facebook返回状态代码400和这个回应: { "error": { "message": "Error validating access token: The session is invalid because the user logged out.", "type": "OAuthException" } } 问题是,当我使用这个C#代码: try { webResponse = webRequest.GetResponse(); // in case of status code 400 .NET throws WebException here } catch (WebException ex) { } 如果状态代码是400 .NET抛出WebException,并且在exception被捕获后我的webResponse为null ,所以我没有机会处理它。 我想这样做,以确保问题是在过期的令牌,而不是其他地方。 有没有办法做到这一点? 谢谢。