2016-04-10 12 views
-3

.hata yakalama ile ilgili sorunlar yaşıyorsanız, bu sorunu gidermek için çalışıyorum ama değil, neden çalışmıyor emin olmak için bir sorun yaşıyorsanız, vb.

Güncelleme: Bu konuda çok fazla ayrıntıya girmedim.

Altı hatta, kullanıcı bir sayı girmek demektir, ancak kullanıcı bir harfi girerse program çöküyor. Normalde double.tryparse kullanmak ve bu harika çalışıyor ama nedense hata mesajı bir sen olmadığını kontrol etmek zorunda

Private Sub quadraticEquation() 
    Dim a, b, c, d As Double 
    Dim x1, x2, stra, strb, strc As String 
    Console.WriteLine("ax^2 + bx + c = 0") 
    Console.WriteLine("Please enter a") 
    stra = Console.ReadLine() 
    a = Double.Parse(stra) 
    If IsNumeric(stra) Then 
     Console.WriteLine("Please enter b") 
     strb = Console.ReadLine() 
     b = Double.Parse(strb) 
    Else 
     Console.WriteLine("Invalid input") 
     Call quadraticEquation() 
    End If 

    Console.WriteLine("Please enter c") 
+0

Hata nedir ve hangi satırda ??? Bunun yerine Double.TryParse() 'yi kullanmalısınız. Değer çifte ayrıştırılabiliyorsa True değeri dönecektir. –

+0

Hata yakalamada sorun yaşıyorsanız, bazı hata işleme ve kodda hata ayıklama ekleyin. – ManoDestra

+0

Buradaki sorular için sorunu olabildiğince daraltmak için çok fazla bilgi vermeye çalışmalısınız. Kodunuzda: Çift (Double) Pose (stra) - yaptıktan sonra isNumeric (stra) testi yapılmaz. Ve eğer kötü bir giriş varsa, quadraticEquation altını tekrar aramak istemezsiniz, bu gerçekten karışıktır. Bir çeşit "While" veya "Repeat" döngüsü –

cevap

0

ilk "hayır erişilebilir 'TryParse iddialarının bu numarayı kabul ettiğinden Hata 1 Aşırı çözünürlük başarısız oldu" alıyorum stra nümeriktir ve sadece sayısal bir sayıyı çift türüne ayrıştırırsa, sayısal olmayan değeri ikiye ayrıştırmaya çalışırsınız ve bu mümkün değildir, bu nedenle istisna atılır.

If IsNumeric(stra) Then 
      a = Double.Parse(stra) 
      Console.WriteLine("Please enter b") 
      strb = Console.ReadLine() 
      b = Double.Parse(strb) 
     Else 
      Console.Write("Invalid input") 
     End If 
İlgili konular