JSONSerialization.data(withJSONObject:options:)
(Swift 2'de dataWithJSONObject
) throws
olarak bildirilmiştir. Daha sonra, “atar”Hangi koşullar altında JSONSerialization.data (withJSONObject :) birlikte bir hata attı?
do {
// Crash
try JSONSerialization.data(
withJSONObject: NSObject(),
options: [])
}
catch
{
// Never reached
print("Caught error:", error)
}
Neden bu yöntem bildirildi: Ancak, geçersiz nesneler geçen bir çarpışma değil, bir catchable hata neden olur? Hangi koşullar altında bir istisna atar?
Bir hatanın neden atılmasının nedenini bilmemek, hatanın nasıl işleneceğini bilmeyi zorlaştırır ve bu işlemin gerçekleştirildiğini doğrulayan testleri yazmayı imkansız hale getirir.
Bu, "JSONSerialization bir hatayı hangi koşullar altında yapar" sorusunu yanıtlamaz. Ben soruyu uzatabilir ve "JSONSerialization atmak ne hata yapar" diye sorardım. Şimdiye kadar, bunu hiçbir yerde sınıf belgelerinde görmedim. – BTRUE
@BTRUE: Bu cevap (1), JSONSerialization'un bir hata attığı, (2) bu koşulların yeniden üretilmesi için gereken kodu sağladığını ve (3) Apple'ın diğer bazı başarısızlık koşullarının neden atılmadığına ilişkin açıklamasını geçtiği kesin koşulları verir. Başka ne istediğini bilmiyorum. –
Sanırım istisna ve hata kafa karıştırıcı olabilirsiniz. Kilitlenme oluyor çünkü bir istisna kaldırılıyor. Metodu bir hata atıyorsa, yayılabilir. Onlar iki farklı şey. Ne ve düşündüm ki, bulmaya çalışıyordum, ne tür hatalar atıyor ve ne zaman atıyor. Bir istisna görüyorsun, bir hata değil. – BTRUE