Tag: 线程exception

线程“main”中的exceptionjava.lang.UnsupportedClassVersionError:a(Unsupported major.minor version 51.0)

可能重复: 不受支持的主要.minor版本51.0 我安装了JDK7,一个简单的hello word程序得到编译,但是当我运行这个时,我得到了下面的exception。 Exception in thread "main" java.lang.UnsupportedClassVersionError: a (Unsupported major.minor version 51.0) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) 我在命令提示符处检查了java -version ,它显示Java版本1.4.2_03,但是当我尝试从java.com安装新的java版本时,它说我推荐了Java 7版本。

英语例外信息?

我们通过将Exception.Message写入文件来logging系统中发生的任何exception。 但是,他们是写在客户的文化。 而土耳其的错误对我来说并不重要。 那么如何在不改变用户文化的前提下,用英文logging任何错误信息呢?

并发修改exception:添加到ArrayList

问题发生在 Element element = it.next(); 包含该行的这段代码在OnTouchEvent for (Iterator<Element> it = mElements.iterator(); it.hasNext();){ Element element = it.next(); if(touchX > element.mX && touchX < element.mX + element.mBitmap.getWidth() && touchY > element.mY && touchY < element.mY + element.mBitmap.getHeight()) { //irrelevant stuff.. if(element.cFlag){ mElements.add(new Element("crack",getResources(), (int)touchX,(int)touchY)); element.cFlag = false; } } } 所有这些都在synchronized(mElements)里面,其中mElements是一个ArrayList<Element> 当我触摸一个Element ,它可能会激活cFlag ,它会创build另一个具有不同属性的Element ,这些属性会在不到一秒的时间内从屏幕上消失。 这是我创造粒子效果的方法。 我们可以调用这个“粒子”的crack […]

无法加载文件或程序集…试图加载格式不正确的程序(System.BadImageFormatException)

我有两个项目, ProjectA和ProjectB 。 ProjectB是一个控制台应用程序,依赖于ProjectA 。 昨天,一切正常,但突然间,当我运行ProjectB我得到这个: BadImageFormatException未处理 : 无法加载文件或程序集“ProjectA,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null”或其某个依赖项。 试图加载格式不正确的程序。 两者都只是定期的项目,没有任何其他non.Net项目的依赖。 两者都完全.Net – 没有本地代码,没有P / Invoke。 我有其他项目依赖于ProjectA ,仍然工作得很好。 我已经尝试过的事情: 确保两个项目都设置为“任何CPU”,并检查构buildcheckbox。 他们是。 确保两个项目都是用于相同的目标框架(.Net 4.0客户端configuration文件) 。 在ProjectB – >参考 – > ProjectA – >属性,确保“复制本地”设置为“真” _ (我证实ProjectA.dll被正确复制) 清理/重build解决scheme。 我甚至尝试在两个项目中手动删除/ bin和/ obj文件夹。 重新启动Visual Studio。 重新启动我的电脑。 检出一个全新的版本库。 但我仍然得到同样的错误。 我不知道我做了什么来解决这个问题,也不知道如何解决这个问题。 有任何想法吗?

在Java中处理InterruptedException

以下处理InterruptedException方法有什么区别? 什么是最好的办法呢? try{ //… } catch(InterruptedException e) { Thread.currentThread().interrupt(); } 要么 try{ //… } catch(InterruptedException e) { throw new RuntimeException(e); } 编辑:我想也知道在这两个使用的情况下。

TAP全局exception处理程序

这段代码抛出一个exception。 有没有可能定义一个应用程序全局处理程序,将抓住它? string x = await DoSomethingAsync(); 使用.net 4.5 / WPF

用InputMismatchException尝试/ catch创build无限循环

所以我正在构build一个从用户input中获取内容的程序。 我有什么似乎是一个非常简单的try / catch块,如果用户不input一个int,应该重复该块,直到他们这样做。 以下是代码的相关部分: import java.util.InputMismatchException; import java.util.Scanner; public class Except { public static void main(String[] args) { Scanner input = new Scanner(System.in); boolean bError = true; int n1 = 0, n2 = 0, nQuotient = 0; do { try { System.out.println("Enter first num: "); n1 = input.nextInt(); System.out.println("Enter second num: "); n2 = […]

如何处理TransactionTooLargeException

我得到了一个应用程序TransactionTooLargeException的错误跟踪。 不可复制,以前从未有过。 它在文档中说 粘合剂交易失败,因为它太大了。 在远程过程调用期间,调用的参数和返回值将作为存储在Binder事务缓冲区中的Parcel对象进行传输。 如果参数或返回值太大而不能放入事务缓冲区,则调用将失败,并且将引发TransactionTooLargeException。 … 当远程过程调用引发TransactionTooLargeException时有两种可能的结果。 客户端无法将其请求发送给服务(如果参数太大而无法放入事务缓冲区),或服务无法将其响应发送回客户端(最有可能的情况是返回值为太大而不适合事务缓冲区)。 … 所以,好吧,我正在传递或接收超过某个未知限制的论据。 但是哪里? stacktrace不显示我的文件中的任何内容: java.lang.RuntimeException: Adding window failed at android.view.ViewRootImpl.setView(ViewRootImpl.java:548) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:406) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:320) at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:152) at android.view.Window$LocalWindowManager.addView(Window.java:557) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2897) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) at android.app.ActivityThread.access$600(ActivityThread.java:139) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:4977) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) at dalvik.system.NativeStart.main(Native Method) Caused by: […]

在现代Python中声明自定义exception的正确方法是什么?

在现代Python中声明自定义exception类的正确方法是什么? 我的主要目标是遵循任何标准的其他exception类,以便(例如)我包含在exception中的任何额外string通过任何工具捕获exception而打印出来。 对于“现代Python”,我指的是在Python 2.5中运行的东西,但对于Python 2.6和Python 3。 通过“自定义”,我的意思是一个Exception对象,可以包含有关错误原因的额外数据:一个string,也许还有一些其他与exception相关的任意对象。 我被Python 2.6.2中的下面的弃用警告绊倒了: >>> class MyError(Exception): … def __init__(self, message): … self.message = message … >>> MyError("foo") _sandbox.py:3: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6 BaseException对于名为message属性有特殊的含义,这似乎很疯狂。 我从PEP-352那里收集到的那个属性在2.5中有一个特殊的含义,他们试图贬低它,所以我猜这个名字(现在只有这个名字)现在被禁止了吗? 啊。 我也模糊地意识到, Exception有一些神奇的参数args ,但我从来不知道如何使用它。 我也不确定这是做事的正确方法。 我在网上发现的很多讨论都build议他们试图取消Python 3中的参数。 更新:两个答案build议覆盖__init__和__str__ / __unicode__ / __repr__ 。 这似乎很多打字,是否有必要?

对检查exception的情况

多年来,我一直无法得到一个像样的答案:为什么有些开发人员如此反对检查exception? 我经历了很多次的交谈,在博客上阅读,读了布鲁斯·艾克尔(Bruce Eckel)所说的话(我看到的第一个人对他们说的话)。 我目前正在写一些新的代码,并非常小心地注意我如何处理exception。 我试图看到“我们不喜欢被检查的例外”的观点,我仍然看不到它。 每一次谈话结束时都会有同样的问题没有答案…让我来设置它: 一般来说(从Java如何devise), 错误是不应该被捕获的事情(VM有一个花生过敏,有人扔了一jar花生) RuntimeException是程序员做错的事情(程序员离开数组的末尾) exception(RuntimeException除外)是指程序员无法控制的事情(在写入文件系统时磁盘已满,已达到进程的文件句柄限制,您无法再打开任何文件) Throwable只是所有exceptiontypes的父项。 我听到的一个共同的观点是,如果发生exception,那么所有开发人员将要做的就是退出程序。 我听到的另一个常见的观点是,检查exception使得重构代码变得更加困难。 对于“我要做的就是退出”的论点,我说即使你退出,你也需要显示一个合理的错误信息。 如果您只是在处理错误,那么当程序退出时,您的用户不会过于高兴,而没有明确指出原因。 对于“重构难以重构”的人群来说,这表明没有select适当的抽象层次。 IOException不应该声明方法抛出IOException,而应该将IOException转换为更适合正在发生的exception。 我没有用catch(Exception)(或者在某些情况下catch(Throwable)来包装Main以确保程序可以正常退出 – 但是我总是会捕获我需要的特定的exception。这样做可以让我,至less要显示一个合适的错误信息。 人们从不回答的问题是: 如果抛出RuntimeException子类而不是Exception子类,那么你怎么知道你应该捕获什么呢? 如果答案是catch Exception,那么你也像处理系统exception一样处理程序员错误。 这对我来说似乎是错误的。 如果你捕获Throwable,那么你正在以同样的方式处理系统exception和VM错误(等等)。 这对我来说似乎是错误的。 如果答案是你只捕获了你所知道的exception,那么你怎么知道抛出的是什么? 当程序员X抛出一个新的exception并忘记捕捉它时会发生什么? 这对我来说似乎非常危险。 我会说一个显示堆栈跟踪的程序是错误的。 那些不喜欢检查exception的人不会有这种感觉吗? 所以,如果你不喜欢检查的exception,你可以解释为什么不是和回答没有得到回答的问题吗? 编辑:我没有寻找什么时候使用任何模型的build议,我在寻找的是为什么人们从RuntimeException延伸,因为他们不喜欢从exception扩展和/或为什么他们捕获一个exception,然后重新抛出一个RuntimeException而不是添加抛出他们的方法。 我想了解不喜欢检查exception的动机。