gpt4 book ai didi

java - 一个 if 语句中的多个异常处理

转载 作者:行者123 更新时间:2023-11-30 09:38:24 24 4
gpt4 key购买 nike

<分区>

我在抛出和捕获异常时遇到了问题。

这里是assignSeat()的代码,assignSeat是在另一个类的try block 中调用的。

void assignSeat(String passengerName, int x, int y) throws SeatOccupiedException, InvalidPassengerNameException
{
Seat tSeat = airplane.getSeat(x,y);
if (tSeat!=null)
{
if (passengerName.isEmpty() || !passengerName.matches("[a-zA-Z]+"))
{
throw new InvalidPassengerNameException();
}
//excluded else if
else if (foundPassenger(passengerName))
{
airplane.seatList.get(airplane.seatNumber(passengerName)).unOccupy();
tSeat.occupy();
for (int i = 0; i<passengers.size();i++)
if (passengers.get(i).getName().equals(passengerName))
passengers.get(i).changeSeat(tSeat.getSeatName());
}
else if (!tSeat.occupied)
{
tSeat.occupy();
addPassenger(passengerName, tSeat.getSeatName());
}
else if (tSeat.occupied)
{
throw new SeatOccupiedException();
}
}

这里是调用 assignSeat() 的代码并且在另一个类中(我不会复制整个类以使其看起来更清楚)

if (afComp.currentAF != null)
{
try
{
afComp.currentAF.assignSeat(nameField.getText(), x, y); //<-Problem here, "Unhandled exception type SeatOccupiedException"
}
catch (SeatOccupiedException exception) //<-Problem here, "Unreachable catch block, This exception is never thrown from the try statement body"
{

}
catch(InvalidPassengerNameException exception) //<-No problems.
{

}
}

try block 有什么问题?为什么它不会抛出 SeatOccupiedException?

异常类:

座位占用:

package a2;

public class SeatOccupiedException extends Exception
{
public SeatOccupiedException(){}
}

无效的乘客姓名:

package a2;

public class InvalidPassengerNameException extends Exception
{
public InvalidPassengerNameException() {}
}

我的每个类都在包 a2 中

为调用 assignSeat 的类导入

package a2;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.MouseEvent;
import java.awt.BorderLayout;
import javax.swing.*;
import javax.swing.event.*;

为具有 assignSeat 的类导入

package a2;
import java.util.ArrayList;

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com