2011-10-12 2 views

답변

7

거의 아무것도 :

package scala { 
    final class MatchError(obj: Any) extends RuntimeException 
    final class UninitializedError extends RuntimeException("uninitialized value") 
    final case class UninitializedFieldError (msg: String) extends RuntimeException(msg) 

    package util.regex { 
    class SyntaxError(e: String) extends RuntimeException(e) 
    } 

    package xml { 

    class BrokenException() extends java.lang.Exception 
    case class MalformedAttributeException(msg: String) extends RuntimeException(msg) 

    package dtd { 
     case class ValidationException(e: String) extends Exception(e) 
    } 

    package include { 
     class CircularIncludeException(message: String) extends XIncludeException 
     class UnavailableResourceException(message: String) extends XIncludeException(message) 
     class XIncludeException(message: String) extends Exception(message) 
    } 

    package parsing { 
     case class FatalError(msg: String) extends java.lang.RuntimeException(msg) 
    } 
    } 
} 

나머지는 거의 모든 모서리를 커버 자바에서 온다. 이 스칼라 메서드가 다른 플랫폼에서 던지는 것에 대한 질문을 제기합니다. 그렇죠?

+0

Java에서 작동하는 경우 자신 만의 사용자 정의 예외 및 오류를 던지는 것이 얼마나 쉬운 지에 대한 꽤 좋은 아이디어를 제공합니다. 객체에서 한 줄의 클래스를 만들고 필요에 따라 사용하십시오. final 클래스 MyException (arg : String)은 RuntimeException()을 확장하거나 java.lang.RuntimeException (msg)를 사용하여 FatalError에서 볼 수있는 것처럼 확장합니다. 좋은 소 블라 트. –

2

NotImplementedException 현재 아마, 스칼라 2.10 간주되는 것 같다. 이 thread을 참조하십시오.

+1

물론 Scala 2.10에서는 'UnsupportedOperationException'이 고려되지 않습니다. 오랫동안 Java 라이브러리의 일부였습니다. 스레드는 Predef에 던져 넣는 메서드를 추가하는 것에 관한 것입니다. –

+1

우선, UnsupportedOperationException과 NotImplementedException은 완전히 다른 것을 의미하며 둘 다 필요합니다. (저는 C# 프로젝트에서이 둘을 적극적으로 사용했습니다). 그리고 오늘날 스칼라 2.9.1에서 무엇을 사용해야할까요? 나는 클래스를 정의한 다음 메소드를 구현하는데 사용한다. 메소드 Not -mempledException()을 사용하여 메소드 바디를 구현하지 않고 모든 것을 구현하기 전에 여러 번 프로젝트를 컴파일한다. 하지만 스칼라에서는 더미 데이터를 반환하여 모든 함수를 구현해야하는 것처럼 보입니다. 버그가 발생할 수 있으며 성가신 일입니다. – Ivan

+0

2.10부터'Predef'에'???'가 추가되었습니다. 이제'class Thing {def getThing = ??? }'. 'getThing'을 호출하면 "구현이 없습니다"라는 메시지와 함께 scala.NotImplementedError가 발생합니다. – afternoon

2

Java에 이미 존재하는 모든 기본값을 사용할 수 있습니다. 스칼라는 자바의 표준 예외에 아무 것도 추가하지 않는다.