我一直在试图做一个简单的程序,获取一个小的随机数字,并显示在用户在一个文本视图。 最后得到随机数生成(我认为)程序抛出一个致命的exception,每当我跑。 没有错误的代码,但我是一个完整的新手,我开始简单,以便我可以学习。 几小时后,我提交了寻求帮助。 我几乎可以肯定,我的随机数字片段是在错误的领域,我只是不知道该把它放在哪里。 我试过的每个地方都会抛出同样的错误。 这是.java package com.eai.vgp; import java.util.Random; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.widget.TextView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. […]
如何打印除stderr以外的stream的exception的堆栈跟踪? 我发现的一种方法是使用getStackTrace()并将整个列表打印到stream中。
从Surefire 2.6升级到Surefire 2.13时,在运行我的unit testing时,我得到一个TypeNotPresentExceptionProxy 。 java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:653) at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:460) at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:286) at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:222) at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69) at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52) at java.lang.Class.initAnnotationsIfNecessary(Class.java:3070) at java.lang.Class.getAnnotation(Class.java:3029) at org.apache.maven.surefire.common.junit4.JUnit4TestChecker.isValidJUnit4Test(JUnit4TestChecker.java:64) 在JUnit4TestChecker ,第64行看起来像这样: Annotation runWithAnnotation = testClass.getAnnotation( runWith ); 所以Surefire会检查@RunWith注解来确保它的types是有效的。 我们的testing使用Spring,因此@RunWith在我们的testing类中看起来像这样: @RunWith(SpringJUnit4ClassRunner.class) 似乎Surefire没有findSpringJUnit4ClassRunner类。 我不确定为什么在Surefire 2.6下,testing运行良好。 有任何想法吗?
我有部分代码,我想抛出一个exception,每当用户未经过身份validation/未经授权。 所以不是写我自己的NotAuthenticatedException和NotAuthorizedException,而是想知道是否还没有一些C#标准。 我可以想象很多程序都会抛出类似的Exceptions,如果每个人都再次写下他们自己的“轮子”,那也不会很有用。
我的GUI基于桌面的WPF 4.0(C#.Net 4.0)程序与SQL Server数据库一起使用。 每次运行我的应用程序时,它都会通过ADO.NET Entity Framework创build一个到SQL Server的连接,如果SQL Server不可达,则会引发exception并显示带有通知的MessageBox。 现在我想在用户阅读这个消息后,应用程序将closures。 我发现了三种方法来做到这一点: Process.GetCurrentProcess().Kill(); 要么 this.Shutdown(); // Application.Current.Shutdown() 要么 System.Environment.Exit(0); 所有这些工作正常,做我所需要的 – closures应用程序,并杀死Windows任务pipe理器中的应用程序的过程。 我想知道: 他们有什么区别? 哪种方式将closures我的应用程序更快? 我应该使用哪种方式closures应用程序? 是Application.Current.Shutdown()和this.Shutdown()以同样的方式closures应用程序? 或者,也许有另一种更合适的方式来closuresWPF GUI应用程序? Application.Exit()不适用于我,因为我得到的错误: 事件“ System.Windows.Application.Exit ”只能出现在+ =或 – =的左侧 谢谢。
看起来,当多处理.Pool进程发生exception时,没有堆栈跟踪或任何其他指示失败。 例: from multiprocessing import Pool def go(): print(1) raise Exception() print(2) p = Pool() p.apply_async(go) p.close() p.join() 打印1并停止静音。 有趣的是,引发一个BaseException反而起作用。 有什么办法使所有exception的行为与BaseException相同吗?
我最近接受了采访,面试官要我做技术testing,看看我的知识。 完成之后,他向我反馈了我是如何做到这一点的,我没有想到,也很感激,因为很less有面试官如果不想聘用你。 他告诉我,他看到我的代码不好的一件事是,我在每个写的方法中使用了不止一个try-catch块。 因为我觉得这很有趣,所以这引起我的注意。 我相信目前我应该做一个try-catch块,在那里有一个语义上可区分的代码块,它有一个或多个方法可以抛出需要被捕获的exception。 我遵循的唯一例外是,如果两个方法抛出相同的exceptiontypes,我最好把它们放在不同的try-catch块中,以清楚地区分何时抛出exception和抛出exception的原因。 这与面试官要求我做的事情有很大的不同。 那么每个方法只使用一个try-catch块是一个已知的好习惯? 如果这是一个已知的良好做法,那么做什么好处? 编辑:我非常感谢你的想法,这是非常好的。 虽然注意到我在问这是否是已知的好习惯。 这是,如果大多数程序员会同意这一点,或者这在某些书中被写成一个好的实践
什么是创buildexception的最佳实践? 我刚刚看到这个,我不知道应该吓到还是喜欢。 我在书中多次阅读,例外永远不会持有一个string,因为string本身可以抛出exception。 任何真实的事实呢? 基本上我从脚本的理解是,这样做是为了让所有的内部Python库有一个常见的错误消息格式(这是迫切需要的东西),所以我可以理解为什么把错误消息string是一个好主意。 (几乎每一个方法都会抛出exception,因为完全不需要无效的通过)。 有问题的代码如下: """ Base Exception, Error """ class Error(Exception): def __init__(self, message): self.message = message def __str__(self): return "[ERROR] %s\n" % str(self.message) def log(self): ret = "%s" % str(self.message) if(hasattr(self, "reason")): return "".join([ret, "\n==> %s" % str(self.reason)]) return ret class PCSException(Error): def __init__(self, message, reason = None): self.message = message […]
我在Drupal 6 .module文件中有一个PHP函数。 我正在尝试执行初始variablesvalidation之前执行更密集的任务(如数据库查询)。 在C#中,我曾经在我的Try块的开始实现IF语句,如果validation失败,会抛出新的exception。 抛出的exception将被捕获到Catch块中。 以下是我的PHP代码: function _modulename_getData($field, $table) { try { if (empty($field)) { throw new Exception("The field is undefined."); } // rest of code here… } catch (Exception $e) { throw $e->getMessage(); } } 但是,当我尝试运行代码时,它告诉我只能在Catch块内抛出对象。 提前致谢!
在最近的一个项目中,我build议在testing用例代码中捕获一个RuntimeException并logging下来。 代码处理来自数据库的一系列input,并且我不希望testing因任何input失败而停止(空值,非法参数等)。 不用说,我的build议引发了激烈的讨论。 捕捉任何types的RuntimeException是否可以接受? 如果是,那么可以捕获RuntimeExceptions的其他情况是什么?