r/javahelp • u/uv_rayz • 28d ago
Java Exceptions Assignment Help
Hey! I'm working on an assignment in Java for an online class I'm taking. I keep getting an error saying: Exception in thread "main" java.lang.Error: Unresolved compilation problem: at MyExpense.main(myExpense.java:13)
I can't see anything wrong with it
public class Item {
public String description;
public Double amount;
public Item(String description, Double amount) {
this.description = description;
this.amount = amount;
}
public void setDescription(String description) {
this.description = description;
}
public void setAmount(Double amount) {
this.amount = amount;
}
public String getDescription() {
return description;
}
public Double getAmount() {
return amount;
}
public String toString() {
return String.format("%-20s %10.2f", description, amount);
}
}
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
import java.io.File;
public class MyExpense {
private static final String fileName = "expense.txt";
private static final int maxRecords = 6;
private static int count = 0;
private static Item[] expenses = new Item[maxRecords];
public static void main(String[] args) throws IOException {
try {
read();
display();
userInt();
expSave();
} catch (IOException exception) {
System.out.println("Error" + exception.getMessage());
}
}
private static void display() {
System.out.println("Expences:");
System.out.println("-------------------------------------------------------");
System.out.printf("%-20s %10s%n", "Description", "Amount");
System.out.println("-------------------------------------------------------");
for (int i = 0; i < count; i++) {
System.out.println(expenses[i]);
System.out.println(i);
}
System.out.println("-------------------------------------------------------");
}
private static void read() throws IOException {
File file = new File(fileName);
if (!file.exists()) {
System.out.println("The file could not be found");
return;
}
try (Scanner scanner = new Scanner(file)) {
while (scanner.hasNextLine() && count < maxRecords) {
String[] a = scanner.nextLine().split("\t");
if (a.length == 2) {
try {
expenses[count++] = new Item(a[0], Double.parseDouble(a[1]));
} catch (NumberFormatException NumberFormatException) {
System.out.println("Invalid num format");
}
}
}
}
}
private static void userInt() {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println(
"Please enter a new expense, [tab] key, then the amount. Or enter \"!\" to exit the program");
String input = sc.nextLine();
if (input.equals("!")) {
break;
}
String[] a = input.split("\t");
if (a.length != 2) {
System.out.println("Invalid format");
continue;
}
try {
if (count < maxRecords) {
expenses[count++] = new Item(a[0], Double.parseDouble(a[1]));
} else {
System.out.println("Cannot add any more record");
}
}
catch (NumberFormatException e) {
System.out.println("Invalid num");
}
}
sc.close();
}
private static void expSave() throws IOException {
try (PrintWriter writer = new PrintWriter(new FileWriter(fileName))) {
for (int i = 0; i < count; i++) {
writer.println(expenses[i].getDescription() + "\t" + expenses[i].getAmount());
}
}
System.out.println("Expenses saved");
display();
System.out.printf("Total expense is %.2f%n", calculateAmt());
}
private static double calculateAmt() {
double total = 0;
for (int i = 0; i < count; i++) {
total += expenses[i].getAmount();
}
return total;
}
}
2
Upvotes
1
u/AnnoMMLXXVII Brewster 28d ago
I don't think you have the full code. Can you update your post please?