2014-10-20 9 views
2

저는 프로그래밍 고등학교 과정에 있으며, OverflowException 또는 NotFiniteNumberException을 사용하는 프로그램을 작성하고 있습니다. 그것은 산술적이어야하고 내가 생각할 수있는 모든 것을 시도했지만 제대로 인쇄 할 수 없어서 문제가 내 코드에 있다고 가정하고 있습니다. 이것은 내가 해봤 것들 중 하나입니다산술 예외

모듈 Module1의

Sub Main() 
    Dim A As Integer = Integer.MaxValue 
    Dim B As Integer = A + 1 
    Try 
     Console.WriteLine("The answer is: ", B) 
     Console.ReadLine() 
    Catch C As OverflowException 
     Console.WriteLine("B is greater than the maximum value ") 
     Console.ReadLine() 
    End Try 
End Sub 

나는이 작업을 수행 할 때 엔드 모듈

, 그것은 오류 메시지가 줄 않지만, "처리되지 않은 예외를 말한다 "이며"B가 최대 값보다 큼 "이 아닙니다. 분명히, 왜 이렇게하는지 모르겠다. 그래서 어떤 정보라도 커다란 도움이 될 것이다. NotFiniteNumberException을 사용하여 작업 할 수있는 방법을 제안하는 것이 더 쉬울 것이라면 필자가 시도한 것을 보여줄 것이라고 생각했습니다. 감사합니다!

Console.WriteLine("The answer is: ", B) 
Console.ReadLine() 

, 그러나, 할 수있는이 라인 : 당신은 try/catch 블록이 같은 내부 후자를 포함해야한다

Dim B As Integer = A + 1 

답변

1

이 두 라인은 예외를 던질 수 없다 :

Dim B As Integer 
Try 
    B = A + 1 
    Console.WriteLine("The answer is: ", B) 
    Console.ReadLine() 
Catch C As OverflowException 
    Console.WriteLine("B is greater than the maximum value ") 
    Console.ReadLine() 
End Try 

여기에는 B 값이 사용되지 않으므로 declaratio Try/Catch 안의 B의 n. 나는 그것을 의도적으로 외부에 두었습니다. 이것은 일반적으로 당신이 진지한 어플리케이션에서하고 싶은 것입니다. 당신은 일반적으로 특정 상태에있는 객체를 가지며 상태를 변경하려고합니다. 코드가 실패하면 개체의 현재 상태를 표시하고 시도한 작업을 실행하지 못했음을 알릴 수 있습니다. 최상의 실습 조언이라고 생각하십시오.