첫 번째 Scala 프로그램의 경우 XML 파일을 스키마간에 변환하는 작은 유틸리티를 작성하려고합니다. 반환하는 방법 Scala에서 없음
나는 나에게 파일 내용을 제공하는 방법을 쓰기 시작 :def loadFile(filename: String, encoding: String = "utf-8"):Option[String] = {
try
{
val source = scala.io.Source.fromFile(filename, encoding)
val contents = source.mkString
source.close()
return Some(contents)
}
catch
{
return None
}
}
를하지만 컴파일되지 않습니다. "value 적용은 Nothing의 멤버가 아닙니다."및 "value isDefinedAt는 Nothing의 멤버가 아닙니다"라는 오류 메시지가 나타나 다시 return None
줄에 있습니다.
Option을 반환 할 때 찾을 수있는 모든 예는 여기에서 의미가 없습니다. 어떤 이유로 파일을 읽을 수 없으면 실패하지 않으려합니다.
이 경우 어떻게해야합니까? 스칼라에서 이런 종류의 일을하는 패턴이 있습니까?
하지만 Nicolas Rinaudo와 스타일에 대해 동의합니다. 발신자가 오류를 처리하는 방법을 결정하게합니다.때로는 호출자에게 오류를 보내기 전에 호출 측 (캐시를 지우는 것 또는 정리할 것)에서 처리해야하는 경우가 있습니다. – ses