在5.5之前的PHP没有最后的阻止 – 也就是说,在大多数合理的语言中,你可以这样做: try { //do something } catch(Exception ex) { //handle an error } finally { //clean up after yourself } PHP没有一个finally块的概念。 任何人都有解决这个相当刺激的语言孔的经验?
在Python中的用户定义函数中有什么更好的做法:抛出exception或返回None? 例如,我有一个函数可以find文件夹中最近的文件。 def latestpdf(folder): # list the files and sort them try: latest = files[-1] except IndexError: # Folder is empty. return None # One possibility raise FileNotFoundError() # Alternative else: return somefunc(latest) # In my case, somefunc parses the filename 另一个select是留下exception,并在调用者代码中处理它,但我认为处理FileNotFoundError比IndexError更清楚。 或者用不同的名字重新引发exception是不好的方式?
我怎样才能得到在Python中引发的exception的名称? 例如, try: foo = bar except Exception as exception: name_of_exception = ??? assert name_of_exception == 'NameError' print "Failed with exception [%s]" % name_of_exception 例如,我捕获多个(或全部)exception,并希望在错误消息中打印exception的名称。
我正在和一个同事讨论这个问题,我们不能达成一致,所以我想说说你的想法。 我对此有我自己的看法,但我不会为你破坏它。 什么时候应该返回一个SOAP错误 ,什么时候应该返回一个有错误信息的结果对象 ? 假设这是一个通用的Web服务,可以被各种系统(.NET,Java等)使用。 结果对象将有一个isError标志,一个errorType(类似于特定的exceptiontypes)和一个消息。 有几点需要考虑: 数据validation错误是一个错误? 是否有一个错误组合(对于非常特殊情况)和结果对象(对于“预期”错误)? 你将如何分组SOAP错误(关键[空引用]与validation[邮政编码不正确])? 快速失败vs必须记住检查错误 最佳做法,模式,标准等 链接到文章是有效的。 即使这听起来像我想要你的意见, 请坚持事实 (X是更好的,因为Y和Z …)
从同步子句中抛出exception有没有不明确的副作用? 锁会发生什么? private void doSomething() throws Exception {…} synchronized (lock) { doSomething(); }
Google Universal Analytics有一个点击式的例外 ga('send', 'exception', { 'exDescription': 'DatabaseError' }); 我期待着能够访问Google Analytics控制台,并find与“活动”相同级别的免除报告,但无法看到。 Android和iOS API说Crash and exception data is available primarily in the Crash and Exceptions report但我找不到那个名字的任何报告。
请让我知道我哪里错了,得到错误 我正在创build一个应用程序,其中一个活动只能处于横向模式。 所以我在AndroidManifest.xml文件中添加了以下内容 <activity android:name=".LandScapeImageActivity" android:screenOrientation="landscape"></activity> 我已经创build了一个文件夹 / RES /布局,土地 并在其中添加一个名为see_today_landscape_layout的布局。 并在onCreate()我添加了以下内容 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.see_today_landscape_layout); …. } 但是当我运行我的应用程序,我收到以下错误 02-06 13:46:14.358: E/AndroidRuntime(13286): FATAL EXCEPTION: main 02-06 13:46:14.358: E/AndroidRuntime(13286): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mid.kew.activities/com.mid.kew.activities.LandScapeImageActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f03002b 02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2787) 02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2803) 02-06 13:46:14.358: E/AndroidRuntime(13286): at […]
我的应用程序在JBoss 7.2.0系统上作为客户端与JBoss 4.2.1系统上的接收者JNDI / JMS进行通信。 它创build一个发送队列和一个接收队列。 这个configuration我们已经连续运行了两个月。 双方都没有改变。 本地客户端应用程序安装了4.2.1 jbossall-client.jar和jnp-client.jars。 在正常的活动之后,我们开始接收一个org.jboss.mq.SpyJMSException: Exiting on IOE; – nested throwable: (java.io.EOFException) at org.jboss.mq.SpyJMSException.getAsJMSException(SpyJMSException.java:72) org.jboss.mq.SpyJMSException: Exiting on IOE; – nested throwable: (java.io.EOFException) at org.jboss.mq.SpyJMSException.getAsJMSException(SpyJMSException.java:72)exception。 我们重新启动了JBoss 7.2.0而不做任何改变,当我们build立接收队列时,我们现在正在接收一个org.jboss.mq.SpyJMSException: Cannot subscribe to this Destination: ; {…} Caused by: java.io.EOFException org.jboss.mq.SpyJMSException: Cannot subscribe to this Destination: ; {…} Caused by: java.io.EOFException在我们的QueueReceiver receiver = […]
假设我们有这样的结构: Try ' Outer try code, that can fail with more generic conditions, ' that I know less about and might not be able to handle Try ' Inner try code, that can fail with more specific conditions, ' that I probably know more about, and are likely to handle appropriately Catch innerEx as Exception […]
我一直在我的PHP代码中使用try..catch块,但我不确定是否正确使用它们。 例如,我的一些代码如下所示: try { $tableAresults = $dbHandler->doSomethingWithTableA(); $tableBresults = $dbHandler->doSomethingElseWithTableB(); } catch (Exception $e) { return $e; } 所以我在同一个try / catch块中分组多个数据库操作,因为如果任何事务发生任何exception,我将能够处理它。 我这样做是因为我认为它比以下更具可读性和效率: try { $tableAresults = $dbHandler->doSomethingWithTableA(); } catch (Exception $e) { return $e; } try { $tableBresults = $dbHandler->doSomethingWithTableB(); } catch (Exception $e) { return $e; } 虽然,我不确定我所做的是一个好的做法,或只是一个懒惰的方式来捕捉exception。 我的假设是,只有当一个exception需要特殊处理时,它应该有自己的try / catch块,否则将它们分组在同一个try / catch中应该没问题。 所以我的问题是: […]