Tag: exception

Javaexception命名约定

在Java中,使用“ Illegal ”(如IllegalArgumentException )与“ Invalid ”(如javax.activity.InvalidActivityException )之间是否存在语义差异? 在赋值过程中,编写IllegalArgumentException的子类来表示一系列无法​​标记的输入字符变得很有用,我想知道约定是否使用InvalidTokenException或IllegalTokenException 。 我到目前为止唯一的区别是java.lang似乎更喜欢“非法”而javax.*更喜欢“无效”。 但是,还有java.security.InvalidParameterException ,它是IllegalArgumentException的子类。

我无法理解为什么抛出这个JAXB IllegalAnnotationException

这是我的XML文件: 我做了2个类来解析它(Fields.java和Field.java): @XmlRootElement(name = “fields”) public class Fields { @XmlElement(name = “field”) List fields = new ArrayList(); //getter, setter } 和 public class Field { @XmlAttribute(name = “mappedField”) String mappedField; /getter,setter } 但我得到了这个例外。 [INFO] com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions [INFO] at com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:66) ~[na:1.6.0_07] [INFO] at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:422) ~[na:1.6.0_07] [INFO] at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:270) ~[na:1.6.0_07] 我无法理解为什么这个例外会上升。 例外情况如下: JAXBContext context […]

使用Jquery和servlet检索图像会产生HTTP状态500错误

我需要从我的数据库中检索图像。 为此,我使用jquery和servlet来检索存储在表中的所有图像。 但是,当我运行代码时,它生成HTTP Status 500 – class oracle.jdbc.driver.OracleBlobInputStream declares multiple JSON fields named maxPosition我是Jquery的新手我不知道如何使用JSON的图像。 我的Servlet是: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String uname;// = request.getParameter(“countryCode”); uname=”shyam”; PrintWriter out = response.getWriter(); response.setContentType(“text/html”); response.setHeader(“Cache-control”, “no-cache, no-store”); response.setHeader(“Pragma”, “no-cache”); response.setHeader(“Expires”, “-1”); response.setHeader(“Access-Control-Allow-Origin”, “*”); response.setHeader(“Access-Control-Allow-Methods”, “POST”); response.setHeader(“Access-Control-Allow-Headers”, “Content-Type”); response.setHeader(“Access-Control-Max-Age”, “86400”); Gson gson = new Gson(); […]

系统exception与应用程序exception的明确说明

JPA规范区分系统exception和应用程序exception。 我对绘制线的确切位置感到有点困惑。 我估计: 应用程序exception是代码使用的代码或库显式或隐式抛出的exception。 这包括所有exception,运行时和检查,无论来源如何? 系统exception可能是持久性提供程序抛出的exception。 它当然包含javax.persistence.PersistenceException所有子类。 那么提供者代码抛出的其他exception呢? 其他Java EE库抛出的exception怎么样? 如果exception包含在EJBException它会有所不同吗? 如何通过使用ApplicationException批注来影响行为? 我还没有看到它被使用过。

java.lang.ArrayIndexOutOfBoundsException:length = 4; index = 4长度数组

我有这个错误: 04-02 11:03:57.922: E/AndroidRuntime(18952): FATAL EXCEPTION: main 04-02 11:03:57.922: E/AndroidRuntime(18952): java.lang.ArrayIndexOutOfBoundsException: length=4; index=4 04-02 11:03:57.922: E/AndroidRuntime(18952): at it.nad.cartellecliniche.fragment.SegmentoAnterioreFragment.onTaskComplete(SegmentoAnterioreFragment.java:471) 04-02 11:03:57.922: E/AndroidRuntime(18952): at it.nad.cartellecliniche.asynctask.LookupTask.onPostExecute(LookupTask.java:279) 04-02 11:03:57.922: E/AndroidRuntime(18952): at it.nad.cartellecliniche.asynctask.LookupTask.onPostExecute(LookupTask.java:1) 04-02 11:03:57.922: E/AndroidRuntime(18952): at android.os.AsyncTask.finish(AsyncTask.java:631) 04-02 11:03:57.922: E/AndroidRuntime(18952): at android.os.AsyncTask.access$600(AsyncTask.java:177) 04-02 11:03:57.922: E/AndroidRuntime(18952): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644) 04-02 11:03:57.922: E/AndroidRuntime(18952): at android.os.Handler.dispatchMessage(Handler.java:99) 04-02 11:03:57.922: E/AndroidRuntime(18952): at android.os.Looper.loop(Looper.java:137) 04-02 11:03:57.922: […]

无法定义私有静态final变量,因为它会抛出exception

我有一个类: public class SomeClassImpl implements SomeClass { private static final SomeLib someLib = new SomeLib(); } 我不能这样做,因为SomeLib会抛出一个UnknownHostException。 我知道我可以将实例化移动到构造函数中,但是有没有办法让我按照上面的方式执行它? 这样我就可以将var标记为final。 我试图寻找如何在类级别抛出exception,但无法在其上找到任何内容。

ANTLR不会在无效输入上抛出错误

我正在使用ANTLR来解析我正在编写的Java工具中的逻辑表达式,并且我遇到了问题,因为将无效的输入字符串传递给生成的ANTLR词法分析器并且解析器不会导致任何exception。 生成的文件不是像我期望的那样抛出RecognitionException,而是将错误消息打印到控制台并返回,好像没有发生错误,导致我的程序在以后遇到空数据时崩溃。 我使用ANTLRWorks版本1.4.3生成文件,似乎应该有某种选项让它实际抛出错误而不是打印到控制台,但我还没有找到任何东西。 有谁知道如何让ANTLR实际抛出错误信息? 我看到使用旧版本的ANTLR解决了C#中的同样问题,这是我需要做的吗? 编辑:在Bart指出我正在寻找的方向之后,我找到了这个页面 https://theantlrguy.atlassian.net/wiki/display/ANTLR3/Migrating+from+ANTLR+2+to+ANTLR+3 其“error handling”部分的代码完全符合我的要求。 要更改ANTLR捕获exception的方式,可以在语法文件中说明: @rulecatch { catch (RecognitionException e) { throw e; } } 这迫使ANTLR抛出exception而不是处理它并恢复。 该部分还有一些关于覆盖不匹配和恢复function的内容,以确保抛出所有可能的exception。

索引越界exceptionjava

所以错误信息是这样的: Exception in thread “main” java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source) at FcfsScheduler.sortArrival(FcfsScheduler.java:77) at FcfsScheduler.computeSchedule(FcfsScheduler.java:30) at ScheduleDisks.main(ScheduleDisks.java:33) 用我的代码作为 public void sortArrival(List r) { int pointer = 0; int sProof = 0; while(true) { if(r.get(pointer).getArrivalTime()r.size()-2) { pointer=0; sProof=0; } if(sProof>=r.size()-2) { break; } } } 错误发生在 if(r.get(pointer).getArrivalTime()<r.get(pointer+1).getArrivalTime()) 但我认为在指针增加后,使用代码检查数组索引是否正常。 它是一个超出范围的数组exception还是别的什么? 通常,当它是数组时,错误是ArrayIndexOutOfBoundsException。 这里似乎有什么问题?

Android列表视图数组索引超出界限 – 没有线索?

我有一个应用程序在打开时加载一个列表视图,但是我得到一个数组索引超出界限exception,没有关于问题所在的线索。 它试图在某处访问index = -1,但我不知道在哪里。 该应用程序从数据库加载家庭作业信息,将它们放入ArrayList中的单独的Homework对象中,并从那里将其加载到ListView中。 我真的不知道exception的来源,我已经检查了所有代码。 列表中只有1个作业,但是当我尝试打开它时,应用程序拒绝打开并强制关闭。 这是LogCat输出 谢谢 LogCat输出 01-11 16:38:43.644: E/AndroidRuntime(7267): FATAL EXCEPTION: main 01-11 16:38:43.644: E/AndroidRuntime(7267): java.lang.ArrayIndexOutOfBoundsException: length=29; index=-1 01-11 16:38:43.644: E/AndroidRuntime(7267): at android.text.StaticLayout.calculateEllipsis(StaticLayout.java:738) 01-11 16:38:43.644: E/AndroidRuntime(7267): at android.text.StaticLayout.out(StaticLayout.java:702) 01-11 16:38:43.644: E/AndroidRuntime(7267): at android.text.StaticLayout.generate(StaticLayout.java:410) 01-11 16:38:43.644: E/AndroidRuntime(7267): at android.text.StaticLayout.(StaticLayout.java:140) 01-11 16:38:43.644: E/AndroidRuntime(7267): at android.widget.TextView.makeSingleLayout(TextView.java:5888) 01-11 16:38:43.644: E/AndroidRuntime(7267): at android.widget.TextView.makeNewLayout(TextView.java:5745) 01-11 16:38:43.644: E/AndroidRuntime(7267): […]

SQLException:违反协议。 Oracle JDBC驱动程序问题

我得到以下的赘言: java.sql.SQLException: Protocol violation at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:190) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:286) at oracle.jdbc.driver.T4C80all.receive(T4C80all.java:766) at oracle.jdbc.driver.T4CPreparedStatement.do0all8(T4CPreparedStatement.java:216) at oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:1225) at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:373) at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:284) Oracle系统在Solaris 5.10上运行10.2.0.3.0。 jdbc驱动程序在JDK 1.6.0_21上运行(如果它是导入的,则java也在Solaris 5.10机器上运行)。 我尝试了几种不同的oracle瘦驱动程序,包括最新的和看起来与oracle版本完全匹配的驱动程序。 我正在运行的查询非常简单:“按key1,key2,key3从some_table顺序中选择*”然后迭代结果集并写入文件。 该表有大约1200万行,所以我希望这个过程运行时间很长,但它似乎在5到15分钟内就会死掉。 每次我运行它,它会在另一行上爆炸,所以我认为问题不在于数据。 我找到了oracle警报日志,但我无法分辨出那里的任何内容与我的进程有关。 不过,我不是oracle专家,也许我需要看一下oracle设置。 奇怪的是,我在不同的连接上运行了大约五种类型的查询(一对比较复杂),只有两个最简单的查询得到了这个问题。 任何有关如何缩小问题的帮助或想法将不胜感激。