Tag: exception

java.lang.ArrayIndexOutOfBoundsException:0 – 大于索引的数组?

抛出的exception是否表明数组大于索引? 如果没有,这是什么意思,为什么? 我该如何纠正? 线程“main”中的exceptionjava.lang.ArrayIndexOutOfBoundsException:0在leapyear.LeapYear.main(LeapYear.java:13) public class LeapYear { public static void main(String[] args) { int year = Integer.parseInt(args[0]); boolean isLeapYear; // divisible by 4 isLeapYear = (year % 4 == 0); // divisible by 4 and not 100 isLeapYear = isLeapYear && (year % 100 != 0); // divisible by 4 and not 100 unless […]

JSF 2.0:为什么我的ViewScope Bean重新创建,即使仍然在同一个视图

在我的.xhtml页面中,我有以下表格: … … CustomerTemplate.xhtml是: … // import css, js files … // Other things on the page … 这是我的ManagedBean: @ManagedBean @ViewScoped public class MrBean { … private List items; … @PostConstruct public void prepareItemList() { … Map params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); partnerID = Long.parseLong(params.get(“partnerID”)); … } } 如您所见,我的MrBean是一个ViewScoped ManagedBean。 我预计@PostContruct函数只会在第一次呈现页面时调用一次。 但是,当我单击Add To Cart按钮时,我在Long.parseLong(params.get(“partnerID”))行遇到了nullexception,即使我仍然在同一个View上。 如果有人能就如何解决这个问题给我一个建议,我将非常感激。 更新:我设法通过将commandButton包装在ajax标记内来使函数正常工作,如下所示: … […]

java.lang.ArrayIndexOutOfBoundsException:length = 0; index = 0 – 数据库阅读 – Android

我创建了一个从数据库中读取数据并将其放入String数组的方法。 Android Studio不会出现语法错误,但是当我启动应用程序时,日志会显示: 03-19 16:31:20.938 2518-2518/com.mms.dailypill E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.mms.dailypill, PID: 2518 java.lang.ArrayIndexOutOfBoundsException: length=0; index=0 at com.mms.dailypill.DBManager.getMedicines(DBManager.java:56) 方法代码是: public String[] getMedicines() { SQLiteDatabase db = dbManager.getWritableDatabase(); String[] columns = {dbManager.getName(), dbManager.getFormat(), dbManager.getAmount(), dbManager.getExp_date(), dbManager.getTime()}; Cursor cursor = db.query(dbManager.getTableName(), columns, null, null, null, null, null); String[] medicines = {}; String name, format, exp_date, time; […]

URI方案不是“文件”

我得到例外:“URI方案不是文件” 我正在做的是尝试获取文件的名称,然后从servlet中将该文件(从另一台服务器)保存到我的计算机/服务器上。 我有一个名为“url”的字符串,从上面这里是我的代码: url = Streams.asString(stream); //gets the URL from a form on a webpage System.out.println(“This is the URL: “+url); URI fileUri = new URI(url); File fileFromUri = new File(fileUri); onlyFile = fileFromUri.getName(); URL fileUrl = new URL(url); InputStream imageStream = fileUrl.openStream(); String fileLoc2 = getServletContext().getRealPath(“pics/”+onlyFile); File newFolder = new File(getServletContext().getRealPath(“pics”)); if(!newFolder.exists()){ newFolder.mkdir(); } IOUtils.copy(imageStream, […]

如何在Java中抛出除以零的exception而不实际除以零?

我有一个需要两个输入的I2C设备:分母和分子。 两者都写入单独的地址,因此不进行实际计算( numerator/denominator )。 这样做的问题是在I2C器件上可能会出现除零,因此需要检查除零误差。 理想情况下,如果划分由java代码完成,则会发生完全相同的事情。 目前,我已经提供了一个未使用的变量进行划分,但我担心它会被优化出来: public void setKp(int numerator, int divisor) { int zeroCheck = numerator / divisor; //… doesn’t use zeroCheck } 当然有更好的方法!

是否可以忽略exception?

在Java中,是否可以创建一个不检查throws语句的方法。 例如: public class TestClass { public static void throwAnException() throws Exception { throw new Exception(); } public static void makeNullPointer() { Object o = null; o.equals(0);//NullPointerException } public static void exceptionTest() { makeNullPointer(); //The compiler allows me not to check this throwAnException(); //I’m forced to handle the exception, but I don’t want to } […]

使用javax.sound.sampled.Clip在游戏中播放,循环和停止多个声音。 意外错误

我正试图在游戏中同时播放两个wav声音(背景音乐和效果)。 我首先使用java中的另一个音频处理程序构建了这段代码,它将处理声音的播放,停止和循环。 此构造将播放背景音乐或效果,但一次只能播放一个。 我环顾互联网并被告知使用javax.sound.sampled.Clip处理声音,因此重复使用相同的构造(播放,停止,循环),但将其切换为使用javax.sound.sampled.Clip。 现在我完全迷失了。 从我到目前为止所读到的,我已经完成了一切正确的操作并且在eclipse编辑器中没有出现任何错误,但是当我运行它时,我得到了两个错误之一。 在eclipse(在Linux上运行)中抛出LineUnavailableException。 在eclipse(在Windows 7上运行)中,我在此代码的loop()部分中获得了java.lang.NullPointerException。 如果你能告诉我我做错了什么,或者给我一些相关文档,我会很感激。 我假设我的代码处理exception,但我不确定。 如果你看到任何其他可怕的代码失误,请让我知道我正在努力成为最好的程序员,我真的很感激建设性的批评。 感谢您的时间。 import java.io.File; import java.io.IOException; import java.net.MalformedURLException; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.UnsupportedAudioFileException; /** * Handles play, pause, and looping of sounds for the game. * @author Tyler Thomas * */ public class Sound { private Clip myClip; public […]

CopyOnWriteArrayList抛出CurrentModificationException

当我遍历列表时,我偶尔会得到一个ConcurrentModificationException 。 谷歌搜索告诉我,这可能是因为我在迭代它时在另一个线程中改变该列表并且为了使这个问题消失我应该使用java.util.concurrent.CopyOnWriteArrayList …. ……除了我已经是。 显然,我正在做一些非常愚蠢的事情。 有没有人知道如何诱使CopyOnWriteArrayList抛出ConcurrentModificationException ? 如果重要,我正在使用Java 5。 编辑:由于我正在使用的mutators可能很重要,我正在以两种方式修改此列表: 在前面添加元素。 ( list.add(0, newElement); ) 使用subList让旧项目脱落。 ( list = list.subList(0, MAX_LIST_SIZE); ) 那些举起红旗吗? 如果是这样,为什么? 我的理解是,因为这些操作首先复制了这个东西,所以任何现有的迭代器都会指向未经修改的原始文件,因此不关心。 我的知识是否有漏洞? 编辑2:导致问题的确切代码仍然有点模糊,但我至少可以发布我看到的exception: java.util.ConcurrentModificationException at java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification(Unknown Source) at java.util.concurrent.CopyOnWriteArrayList$COWSubList.iterator(Unknown Source) at…. …它指向我的代码中的for-each循环实例化。 那个COWSubList似乎暗示我对subList调用是我问题的根源; 我还是想明白为什么。 编辑3: * facepalm * CopyOnWriteArrayList.subList()返回List , 而不是 CopyOnWriteArrayList 。 它返回的清单没有提供任何COWAL保护的隐含义务。 这使得使用像这样的subList()来删除一个非常不好的想法。 不确定这是否是我的罪魁祸首,但它是可疑的,无论如何都需要纠正。

java.io.IOException的可能原因是什么:“文件名,目录名称或卷标语法不正确”

我正在尝试使用以下代码复制文件: File targetFile = new File(targetPath + File.separator + filename); … targetFile.createNewFile(); fileInputStream = new FileInputStream(fileToCopy); fileOutputStream = new FileOutputStream(targetFile); byte[] buffer = new byte[64*1024]; int i = 0; while((i = fileInputStream.read(buffer)) != -1) { fileOutputStream.write(buffer, 0, i); } 对于某些用户, targetFile.createNewFile导致此exception: java.io.IOException: The filename, directory name, or volume label syntax is incorrect at java.io.WinNTFileSystem.createFileExclusively(Native Method) […]

什么是exception不与throws子句兼容的原因?

任何人都可以告诉我exception可能有什么原因,而不是与“throws”条款兼容 例如: class Sub extends Super{ @Override void foo() throws Exception{ } } class Super{ void foo() throws IOException{ } } exceptionexception与Super.foo()中的throws子句不兼容