Bir Python sınıfında, bu yöntemin çalıştırılmasından önce sınıfın diğer özelliklerinin bazıları değiştiğinde örnek yöntemden ne tür bir hata çıkarmalıyım?Sınıf durumu geçersiz olduğunda ne tür bir hata çıkıyor?
InvalidOperationException
, "Nesnenin geçerli durumu için bir yöntem çağrısı geçersiz olduğunda atılan istisna" yı kullanacağım C# arka planından geliyorum, ancak eşdeğeri built-in exception in Python bulamadım.
ValueError
'u yükselttim ("işlev, işlev parametreleriyle doğru olduğunda yerleşik bir işlem veya işlev doğru türden ancak uygun olmayan bir değere sahip bir argüman aldığında ortaya çıkar"). Bunun teknik olarak self
parametresi için geçersiz bir değer olduğunu varsayalım; tedavi etmek için doğru yol bu mu? Örneğin, bu deyimsel: raise ValueError("self.foo must be set before running self.bar()")
?
ValueError bana iyi görünüyor. Bir kullanıcının problemle ilişkisini tanımlaması için yeterince yakın. Ayrıca python gibi yanlış bir istisna kullanmak için bileğinize tokat alamaz. Bu diğer hatalardan ayırmak için yeterince yakın. – jdi
Daha fazla ayrıntı vermeye ihtiyaç duyuyorsanız, neden kendi istismarınızı yapmıyorsunuz? –
@LattyWare: Yeni istisna tiplerinin usulsüz nilüfer alt sınıflarını kakmak için görüşmeler gördüm. Bol miktarda yerleşik yapı olduğunu ve sadece karmaşıklığı arttırdığını ileri sürüyorlar. – jdi