Help with trycatch blocks I just cant seem them to work righ

Help with try-catch blocks. I just can\'t seem them to work right. Help!

import java.text.DecimalFormat;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Text;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.text.*;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.image.ImageView;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
import javafx.application.Platform;

public class LoanComparison extends Application
{
    public static void main(String[] args) {
        launch(args);
    }
    // Creating and naming private variables for text fields(user input).
    private TextField LoanAmount = new TextField();
    private TextField NumberOfYears = new TextField();
    private TextArea ResultsTable = new TextArea();
    //Creating button that when pressed displays the results table.
    private Button ShowTable = new Button(\"Show Table\");

    @Override
    public void start(Stage primaryStage)
    {
        //Creating new Border Pane
        final BorderPane pane = new BorderPane();
        //Creating HBox for user interface
        HBox Interface = new HBox(12);
        //Creating labels for text fields
        Label LoanAmt = new Label(\"Loan Amount: \");
        Label NumYears = new Label(\"Years: \");
        //Setting width of text fields
        LoanAmount.setPrefWidth(150);
        NumberOfYears.setPrefWidth(35);
        //Centering interface
        Interface.setAlignment(Pos.CENTER);
        //Adding TextFields, Labels and Button to Interface.
        Interface.getChildren().addAll(LoanAmt, LoanAmount, NumberOfYears, NumYears, ShowTable);
        //Adding Interface to the top of pane and ResultsTable to the center.
        pane.setTop(Interface);
        pane.setCenter(ResultsTable);

        //Setting margins and padding for
        BorderPane.setMargin(ResultsTable, new Insets(5, 1, 1, 1));
        pane.setPadding(new Insets(5, 5, 5, 5));
        //Method that caculates and outputs the results when the user presses the \"Show Table\" button
        ShowTable.setOnAction(e -> Calculate());
        //Setting the size the pane
        Scene scene = new Scene(pane,500, 500);
        //Naming the pane
        primaryStage.setTitle(\"Loan Comparison\");
        primaryStage.setScene(scene);
        primaryStage.show();
        ResultsTable.setEditable(false);
    }

    private void Calculate()
    {

        //Declaring/Defining variables for calculations and try catch blocks.
        boolean ValidInput = true;
        Loan Lloan = new Loan ();
        //Try Catch block for catches vales less than 1000 or greater than 100000.
        try
        {

            Lloan.setAnnualInterestRate(5);
            Lloan.setLoanAmount(Double.parseDouble(LoanAmount.getText()));
            if (Lloan.getLoanAmount() < 1000 || Lloan.getLoanAmount() > 100000)
            {
                throw new Exception();

            }
        }
        catch(Exception e){
            new Alert(Alert.AlertType.ERROR,(\"Invalid Input: Only loan amounts from 1000 to 100000 will be accepted.\")).showAndWait();
            ValidInput = false;

        }

        try{
            Double LoanYears = 0.0;
            Lloan.setNumberOfYears(Integer.parseInt(NumberOfYears.getText()));
            if(LoanYears < 1 || LoanYears > 20)
            {
                throw new Exception();

            }
        }
        catch(Exception f)
        {
            new Alert(Alert.AlertType.ERROR,(\"Invalid Input: The number of years must be from 1 to 20.\")).showAndWait();
            ValidInput = false;

        }
        if (ValidInput = true)
        {
            //Adding column names to table.
            ResultsTable.setText(\"Interest Rate                    Monthly Payment                    \"
                + \"Total Payment\ \");
            //Do While loop for calculating/printing values until the interest rate reaches 8%
            do
            {

                ResultsTable.appendText(new DecimalFormat(\"0.000%\").format(Lloan.getAnnualInterestRate()/100.0) + \"                                    \" +
                    new DecimalFormat(\"$###,##0.00\").format(Lloan.getMonthlyPayment()) + \"                            \" +
                    new DecimalFormat(\"$###,##0.00\").format(Lloan.getTotalPayment()) + \"\ \");
                Lloan.setAnnualInterestRate(Lloan.getAnnualInterestRate() + 0.125);

            } while (Lloan.getAnnualInterestRate() <= 8);
        }
     

    }
}

public class Loan {
private double annualInterestRate;
private int numberOfYears;
private double loanAmount;
private java.util.Date loanDate;

/** Default constructor */
public Loan() {
    this(2.5, 1, 1000);
}

/** Construct a loan with specified annual interest rate,
      number of years, and loan amount
    */
public Loan(double annualInterestRate, int numberOfYears,
      double loanAmount) {
    this.annualInterestRate = annualInterestRate;
    this.numberOfYears = numberOfYears;
    this.loanAmount = loanAmount;
    loanDate = new java.util.Date();
}

/** Return annualInterestRate */
public double getAnnualInterestRate() {
    return annualInterestRate;
}

/** Set a new annualInterestRate */
public void setAnnualInterestRate(double annualInterestRate) {
    this.annualInterestRate = annualInterestRate;
}

/** Return numberOfYears */
public int getNumberOfYears() {
    return numberOfYears;
}

/** Set a new numberOfYears */
public void setNumberOfYears(int numberOfYears) {
    this.numberOfYears = numberOfYears;
}

/** Return loanAmount */
public double getLoanAmount() {
    return loanAmount;
}

/** Set a newloanAmount */
public void setLoanAmount(double loanAmount) {
    this.loanAmount = loanAmount;
}

/** Find monthly payment */
public double getMonthlyPayment() {
    double monthlyInterestRate = annualInterestRate / 1200;
    double monthlyPayment = loanAmount * monthlyInterestRate / (1 -
      (1 / Math.pow(1 + monthlyInterestRate, numberOfYears * 12)));
    return monthlyPayment;  
}

/** Find total payment */
public double getTotalPayment() {
    double totalPayment = getMonthlyPayment() * numberOfYears * 12;
    return totalPayment;  
}

/** Return loan date */
public java.util.Date getLoanDate() {
    return loanDate;
}
}

Solution

import java.util.Scanner; import java.lang.Math; import java.text.DecimalFormat; public class Logs { //integer x field & encapsulation private static double x; // x encapsulation public double getX(){ return x; } public void setX (double ex){ if (ex >= 0){ x = ex; } else{ System.out.println(\"You may not choose a negative number, \'x\' = 0\"); } } //integer y field private static double y; // y encapsulation public double getY(){ return y; } public void setY (double why){ if (why >= 0){ y = why; } else{ System.out.println(\"You may not choose a negative number, \'y\' = 0\"); } } //tester public static void main (String [] args){ Logs sample =new Logs(); Scanner var = new Scanner(System.in); DecimalFormat fmt = new DecimalFormat (\"0.###\"); sample.setX (var.nextDouble()); sample.setY (var.nextDouble()); x = sample.getX(); y = sample.getY(); double z = (x*y); double logX = Math.log(y); double logY = Math.log(x); double logZ = (logX +logY); double result = (Math.exp(logZ)); if (z != result){ System.out.printf(\"%s\", \"Incorrect answer: be a better coder\"); } else { System.out.printf(\"%s %.3d %s %.3d %s %.3d\", \"The product of the values you chose is: \", + z, \"\ ln(x) + ln(y) is: \", + logZ, \"\ Compute to e: \", + result); } } }
Help with try-catch blocks. I just can\'t seem them to work right. Help! import java.text.DecimalFormat; import javafx.scene.layout.AnchorPane; import javafx.sc
Help with try-catch blocks. I just can\'t seem them to work right. Help! import java.text.DecimalFormat; import javafx.scene.layout.AnchorPane; import javafx.sc
Help with try-catch blocks. I just can\'t seem them to work right. Help! import java.text.DecimalFormat; import javafx.scene.layout.AnchorPane; import javafx.sc
Help with try-catch blocks. I just can\'t seem them to work right. Help! import java.text.DecimalFormat; import javafx.scene.layout.AnchorPane; import javafx.sc

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site