그냥 객체를 잡아 하나의 catch
블록을 평가 : 예외가
try {
// stuff
}
catch (exc) {
if (exc === "InvalidNameException") {
// do something
}
else if (exc === "whatever") {
// do something else
}
}
때문에 단지 객체, 당신은, 당신은 항상 자신보다 정교한 예외 구조를 당신이 좋아하는 throw
무엇을 개발할 수 있습니다. 예외 객체에는 필요한 코드를 숫자 키와 함께 실행할 수 있습니다. 즉, Javascript에서 정교한 예외 메커니즘을 많이 사용하지는 못했습니다. 그것은 단지 많이 나오지 않는 것 같습니다. 그럼에도 불구하고 :
try {
throw("InvalidNameException");
}
catch (e) {
switch (e.toString()) {
case "InvalidNameException":
document.write(e);
break;
case "InvalidIdException":
document.write(e);
break;
case "InvalidEmailException":
document.write(e);
break;
}
}
그것은 파이어 폭스 확장 기능처럼 꽤 아니지만, 거의 같은 일을 :
는
function riskyCodeHere() {
// scary dangerous things
if (badThings()) {
throw {
key: 207,
badnessLevel: "terrible",
toString: function() {
return "Things have gotten " + this.badnessLevel;
}
};
}
}
// ...
try {
riskyCodeHere();
}
catch (b) {
switch (b.key) {
case 207: console.log(b.toString());
// ...
}
}
+1, nice! 던지기의이 사용법을 처음 보았습니다! 뭔가 정말 "나쁜"일이 일어나고 있습니다! :-) – ifaour
고마워! 'toString : function() {}'이 어떻게 도움이되는지 물어봐도 될까요? – DarkLightA
오 그냥 그 예 였어. 디버깅 등의 목적으로 유용 할 수 있습니다. 예외 클래스는 자체 로깅 API 또는 이와 유사한 것을 제공 할 수도 있습니다. 요점은 어떤 크기 나 모양의 물건을 던질 수 있다는 것을 보여주는 것이 었습니다. – Pointy