0

我正在做一个小课来保存和加载游戏中的信息,当我编写这个代码时:

import java.io.FileReader;
import java.io.FileWriter;

import org.exolab.castor.xml.MarshalException;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
import org.exolab.castor.xml.ValidationException;

class InformationToStoreLoad{
    public InformationToStoreLoad(){

    }
}

public class GameSaverLoader {

        /*
         * Save the current game
         */
        public void saveXML(){

            FileWriter writer;
            try {
                writer = new FileWriter("save.xml");
                Marshaller.marshal(new InformationToStoreLoad(), writer);
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

             /*
         * Load a game saved before
         */
        public void loadXML()
        {
            try {
                FileReader reader = new FileReader("article.xml");
                InformationToStoreLoad gameToLoad = 
                        (InformationToStoreLoad) Unmarshaller.unmarshal(InformationToStoreLoad.class, reader);
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }
}

我一直在 .NET 平台上工作,我对 Java 有点陌生,所以我不确定我是否做对了所有事情。要导出 Castor 库,我右键单击我的项目,选择属性,然后选择 Java 构建路径,然后选择库,最后单击“添加外部 JAR”并导出此 JAR:“castor-1.3.1- xml.jar"

但是,在使用 marshaller 和 unmarshaller 类时出现以下错误

Unhandled exception type ValidationException

如果我在快速修复中选择“将 catch 子句添加到周围的尝试”,那么我会收到以下错误:

No exception of type MarshalException can be thrown; an exception type must be a subclass of Throwable

The method printStackTrace() is undefined for the type MarshalException

No exception of type ValidationException can be thrown; an exception type must be a subclass of Throwable

The method printStackTrace() is undefined for the type ValidationException

同样在快速修复中,我可以选择这样做:

public void saveXML() throws MarshalException, ValidationException{

然后我得到这个错误:

不能抛出 MarshalException 类型的异常;异常类型必须是 Throwable 的子类

不能抛出 ValidationException 类型的异常;异常类型必须是 Throwable 的子类

我不知道如何解决这些错误,任何人都可以告诉我如何解决这个问题?

此致

4

0 回答 0