Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调试蓝调_Java_Debugging - Fatal编程技术网

Java 调试蓝调

Java 调试蓝调,java,debugging,Java,Debugging,帮助,我收到以下代码错误。我是个新手,我真的不明白为什么我会犯这些错误 java 49: error : ')' expected java 49: error : ';' expected java 58: error: reached end of file while parsing import java.io.*; 导入java.util.*; 导入java.lang.*; 公共类产品{ 私有字符串文件名; 私人ArrayList产品; 公共产品DAO(字符串文件名){ thi

帮助,我收到以下代码错误。我是个新手,我真的不明白为什么我会犯这些错误

java 49: error : ')' expected

java 49: error : ';' expected

java 58: error: reached end of file while parsing

import java.io.*;
导入java.util.*;
导入java.lang.*;
公共类产品{
私有字符串文件名;
私人ArrayList产品;
公共产品DAO(字符串文件名){
this.filename=文件名;
加载();
}
专用空心荷载(){
//TODO:更新此方法
试一试{
AppException a=新AppException(“无法加载”,FileNotFoundException);
AppException b=新AppException(“无效产品数量”);
文件f=新文件(文件名);
扫描仪sc=新扫描仪(f);
扫描仪scDl=sc.useDelimiter(“\r\n”);
字符串listDes=scDl.nextLine();
int numOfProducts=Integer.parseInt(listDes.substring(listDes.length()-1));
字符串productList=scDl.nextLine();
while(scDl.hasNextLine()){
productList=scDl.nextLine();
ArrayList prodDetail=新的ArrayList(Arrays.asList(productList.split(“:”));
字符串名称=prodDetail.get(0);
double price=double.parseDouble(prodDetail.get(1));
int quantity=Integer.parseInt(prodDetail.get(2));
产品生产=空;
if(prodDetail.get(3).equals(“yes”)){
字符串expiryDate=prodDetail.get(4);
产品=新食品(名称、价格、数量、过期日期);
}否则{
产品=新产品(名称、价格、数量);
}
产品。添加(prod);
}
if(products.size()!=numOfProducts){
扔b;
}
}捕获(异常a.getCause()){
a、 getMessage();
}
}
私有void save(){
//TODO:更新此方法
}
}

错误的异常捕获块:

} catch (Exception a.getCause()) {
应该是:

} catch (Exception a) {

也就是说,exception类后面应该只跟有变量名,稍后您将参考该变量名。

您的异常处理是。。。很奇怪。您声明
a
,但从不使用它,出于某种原因在一开始就声明异常(如果您强烈感觉代码将失败,这可能是一个需要解决的问题的迹象),您的
catch
标头具有我从未见过的语法,在
catch
块中,您实际上什么都不做。如果捕获到filenotfoundexception,我将抛出一个新的异常对象。如果numOfProducts大于product.size(),我将抛出另一个异常对象。你会如何以不同的方式处理它?我是新手,我自己也不是很确定,我只是假设在发现某个异常时打印一条消息,我不会在方法的开头声明异常。投掷时只需将其声明为在线。至于
catch
块头,我想看一些Java
catch
块的教程和示例<代码>异常a.getCause()没有任何意义,您试图声明一个变量,同时执行一个方法。您可以通过使用单独的
catch
块(我可能更喜欢)或通过检查
catch
块中的
Exception
对象来区分单独的异常。和
getMessage()
返回一个字符串,但您从不在任何地方打印它。您能给我举个例子让我看一下吗。我在这方面还不是很好。您好,在切换到您的建议后,我在第18行遇到了一个新错误:找不到符号:AppException a=new AppException(“无法加载”,FileNotFoundException);变量:FileNotFoundException位置:ProductDAO@Clement:我很确定构造函数需要的是对象,而不是类的名称
FileNotFoundException
是一个类的名称。@Clement:完全避免这一行,它显然在这里没有任何意义。Clement,一件事是要理解为什么会出现上面的错误——Saviour显然会帮上忙——另一件事是更正整个代码。对试图帮助你的人投反对票是不道德的,因为你对语言了解不够,解决问题会产生新的问题。这是你的问题,不是别人的。如果您想解决代码中的所有问题,请将其放在Eclipse或Intellij项目上,并查看可视化辅助工具,这样会快得多。@Clement:不,您没有足够的分数来投票。至于
AppException
构造函数,第二个参数需要是对象,而不是类的名称。您没有任何名为
FileNotFoundException
的变量(您也不应该这样做,因为这会导致与类的名称混淆)。老实说,这段代码有很多错误。您可能应该从更简单的内容开始,并在学习过程中浏览一些Java教程。
} catch (Exception a) {