处理案例类异常并编译它们

时间:2013-09-02 21:14:23

标签: scala

我正在尝试将这两个类连接起来。 PatientMonitorExceptions.scala

abstract class PatientMonitorExceptions extends Exception
case class InvalidHeartRate (str:String) extends PatientMonitorExceptions

这是我正在尝试使用以下行编译的main.scala:

main.scala

   import gasguru.patient.PatientMonitor
   import gasguru.patient.Patient
   import gasguru.patient.exceptions.InvalidHeartRate
   object Main extends App  {

    val p = new Patient("snyder","brad");
    val v = p.vitalSigns
    val pm = new PatientMonitor(p);
    p.vitalSigns.heartRate = 160;
    println("The patient's heart rate is: " +  p.vitalSigns.heartRate     + " bpm");
    try { pm checkHeartRate v.heartRate
    }
    catch {
      case InvalidHeartRate(x) => println(x);
      case _ => println("Something else");
    }
  }

我正在运行:scala main.scala来编译它 错误:加载InvalidHeartRate时出错,缺少依赖项'class InvalidHeartRate',需要./gasguru/patient/exceptions/InvalidHeartRate.class

此错误消息是什么意思?

1 个答案:

答案 0 :(得分:1)

main.scala引用InvalidHeartRate时,它指的是为您的案例类InvalidHeartRate创建的伴随对象,并在其上调用unapply方法来进行匹配。 InvalidHeartRate对象依赖于类路径中的InvalidHeartRate案例类。发生错误消息是因为即使找到了伴随对象的.class文件(InvalidHeartRate$.class),也会丢失案例类本身的.class文件(InvalidHeartRate.class)。我建议删除所有.class文件并重新编译。