Java 扑克游戏中未处理的异常

Java 扑克游戏中未处理的异常,java,exception-handling,unhandled-exception,poker,playing-cards,Java,Exception Handling,Unhandled Exception,Poker,Playing Cards,我有一个由多个部分组成的程序(2个java文件),应该做两件事: 制作一副牌(洗牌、发牌、重设) 创建一个扑克游戏(制作两副牌,其他东西…) 由于这个未处理的异常错误,我遇到了一个障碍,我甚至不知道它来自哪里。错误图片如下,源代码如下 扑克牌例外类 class PlayingCardException extends Exception { /* Constructor to create a PlayingCardException object */ PlayingCa

我有一个由多个部分组成的程序(2个java文件),应该做两件事:

  • 制作一副牌(洗牌、发牌、重设)

  • 创建一个扑克游戏(制作两副牌,其他东西…)

  • 由于这个未处理的异常错误,我遇到了一个障碍,我甚至不知道它来自哪里。错误图片如下,源代码如下

    扑克牌例外类

    class PlayingCardException extends Exception {
    
        /* Constructor to create a PlayingCardException object */
        PlayingCardException (){
            super ();
        }
    
        PlayingCardException ( String reason ){
        super ( reason );
        }
    }
    

    甲板等级 /**类牌组表示:n副扑克牌 *使用类卡构造n*52张扑克牌! * *不要添加新的数据字段! *不要修改任何方法 *您可以添加私有方法 */

    类组{
    /*这用于跟踪原始n*52卡*/
    私人名单原件;
    /*这从原始牌组的n*52张牌组开始*/
    /*它用于跟踪要处理的剩余卡*/
    /*请参阅reset():它将DealDealDeck重置为全甲板*/
    私人名单;
    /*此对象中的甲板数*/
    私人国际号码;
    /**
    *构造器:在中创建n副扑克牌(每副52张)
    *原始设计并复制到DealDeck。
    *初始化numberdocks=n
    *注意:您需要从卡构造函数捕获PlayingCardException
    *将ArrayList同时用于originalDecks和DealDealDeck
    *@抛出PlayingCardException
    */
    公共甲板(int n)抛出PlayingCardException
    {
    //实施这个方法!
    this.originalDecks=新的ArrayList();
    this.dealDecks=newArrayList();
    int i,j,k;
    numberdocks=n;
    
    对于(k=0;k此选中的异常将在Decks类的构造函数中声明

    public Decks(int n) throws PlayingCardException
    
    让构造函数抛出异常不是一个好主意

    你确定构造函数中的代码会抛出这个异常吗


    尝试将此代码移动到可以在主代码中调用的另一个方法。

    此选中的异常正在Decks类的构造函数中声明

    public Decks(int n) throws PlayingCardException
    
    让构造函数抛出异常不是一个好主意

    你确定构造函数中的代码会抛出这个异常吗


    尝试将此代码移动到可以在主代码中调用的另一个方法。

    构造函数所做的声明是
    PlayingCardException
    是一个。这意味着您必须捕获它


    既然您试图将其用作静态字段,为什么还要麻烦将其设置为已检查异常呢?请将其扩展为RuntimeException,如果它出现,您就不必在任何时候强制检查它。这样,您就可以按自己的方式进行静态初始化。

    声明是您的缺点卡车司机正在做的是
    PlayingCardException
    是一个。这意味着你必须抓住它


    既然您试图将其用作静态字段,为什么还要麻烦将其设置为已检查异常呢?请将其扩展为“RuntimeException”(运行时异常),如果它出现,您不必在任何时候强制检查它。这样,您就可以按您希望的方式进行静态初始化。

    您是否正在处理该异常在in main()上?可以显示主代码吗?请阅读。从工厂类构造对象是一种常见的模式,该类设置值。DeckFactory包含工厂中用于用卡填充甲板的逻辑。如果需要新甲板,请调用DeckFactory.createNewDeck(int n);是否在main()中处理异常?您能显示主代码吗?请阅读。从工厂类构造对象是一种常见的模式,该类设置值。DeckFactory包含在工厂中用卡片填充卡片的逻辑。当您需要新的卡片组时,请调用DeckFactory.createNewDeck(int n);如果我删除“throws PlayingCardException”从构造函数中,我在尝试制作新卡(I,j)时收到一个未处理的异常错误;因此可能会捕获(和处理)构造函数中的异常-不要重新抛出它。通常你应该使用try-catch块来处理构造函数中的异常。啊哈!太好了!try-catch块清除了一切。我使用IDE的建议在方法中添加一个“throws-PlayingCardException”,这是个坏主意。谢谢。如果我删除从构造函数中“抛出PlayingCardException”,我在尝试制作新卡(I,j)时遇到一个未处理的异常错误;因此可能会捕获(并处理)构造函数中的异常-不要重新抛出它。通常你应该使用try-catch块来处理构造函数中的异常。啊哈!太好了!try-catch块清除了一切。我是根据IDE的建议在方法中添加一个“throws-PlayingCardException”,这是个坏主意。谢谢。