Chcę napisać typową procedurę obsługi błędów, która będzie łapać niestandardowe błędy zgłaszane celowo w dowolnej instancji kodu.
Kiedy mi się throw new Error('sample')
podobało w poniższym kodzie
try {
throw new Error({'hehe':'haha'});
// throw new Error('hehe');
} catch(e) {
alert(e);
console.log(e);
}
Dziennik pokazuje w przeglądarce Firefox jako Error: [object Object]
i nie mogłem przeanalizować obiektu.
Po drugie throw
dziennik pokazuje się następująco:Error: hehe
Ale kiedy to zrobiłem
try {
throw ({'hehe':'haha'});
} catch(e) {
alert(e);
console.log(e);
}
konsola pokazała jako: Object { hehe="haha"}
w której mogłem uzyskać dostęp do właściwości błędu.
Jaka jest różnica?
Czy różnica wynika z kodu? Jak ciąg zostanie przekazany jako ciąg, a obiekt jako obiekt, ale składnia będzie inna?
Nie badałem rzucania obiektu błędu… Zrobiłem tylko rzucanie strun.
Czy istnieje inny sposób niż wyżej wymienione dwie metody?
Error
s