StartprogrammingusingObjectPascal:RaiseAnException: Difference between revisions

From 흡혈양파의 번역工房
Jump to navigation Jump to search
(SPOP 예외일으키기 페이지 추가)
 
(번역수정)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
===예외 일으키기===
==예외 발생 시키기==
 
때로는 논리 오류를 막기 위해 예외를 만들고 발생시킬 필요가 있습니다. 예를 들어 사용자가 월의 숫자를 13 으로 입력 했다면, 월에 해당하는 숫자의 범위를 벗어났다는 것을 알리는 예외를 발생시킬 수 있습니다.


때로는 논리 오류를 막기 위해 예외를 만들고 일으킬 필요가 있습니다. 예를 들어 사용자가 월 수를 13으로 입력 했다면, 월 수의 범위를 벗어났다는 것을 알리는 예외를 일으킬 수 있습니다.


예제:
예제:
Line 38: Line 39:
</syntaxhighlight>
</syntaxhighlight>


사용자가 1부터 10까지의 범위 밖의 값을 입력하면, 예외(X is out of range)가 만들어질 것이고 이 부분에서 예외 처리가 없다면, 프로그램은 문제에 충돌할 것입니다. 왜냐 하면 try except 사이에 raise 키워드를 포함한 코드를 작성했고, 프로그램은 충돌하지 않겠지만, 대신 오류 메시지를 표시할 것이기 때문입니다.
 
사용자가 1 부터 10 사이를 벗어나는 범위 밖의 값을 입력하면, 예외(''X is out of range'')가 만들어질 것이고 이 부분에서 예외 처리가 없다면, 프로그램은 문제에 충돌할 것입니다. 왜냐하면 try except 사이에 raise 키워드를 포함한 코드를 작성했고, 프로그램은 충돌하지 않겠지만, 대신 오류 메시지를 표시할 것이기 때문입니다.
 
 
[[Category:StartprogrammingusingObjectPascal]]
[[Category:StartprogrammingusingObjectPascal]]

Latest revision as of 10:57, 4 April 2013

예외 발생 시키기

때로는 논리 오류를 막기 위해 예외를 만들고 발생시킬 필요가 있습니다. 예를 들어 사용자가 월의 숫자를 13 으로 입력 했다면, 월에 해당하는 숫자의 범위를 벗어났다는 것을 알리는 예외를 발생시킬 수 있습니다.


예제:

Program RaiseExcept;

{$mode objfpc}{$H+}

uses
    {$IFDEF UNIX}{$IFDEF UseCThreads}
    cthreads,
    {$ENDIF}{$ENDIF}
    Classes, SysUtils
    { you can add units after this };

var
    x: Integer;
begin
    Write('Please input a number from 1 to 10: ');
    Readln(x);
    try

        if ( x < 1 ) or ( x > 10 ) then // raise exception
            raise exception.Create(x is out of range);
        Writeln( X * 10 = ,  x * 10);

    except
    on e: exception do   // catch my exception    begin
        Writeln('Error: ' + e.Message);
    end;
    end;
    Write('Press enter to close');
    Readln;

end.


사용자가 1 부터 10 사이를 벗어나는 범위 밖의 값을 입력하면, 예외(X is out of range)가 만들어질 것이고 이 부분에서 예외 처리가 없다면, 프로그램은 문제에 충돌할 것입니다. 왜냐하면 try except 사이에 raise 키워드를 포함한 코드를 작성했고, 프로그램은 충돌하지 않겠지만, 대신 오류 메시지를 표시할 것이기 때문입니다.