Visual Basic에서 경고 구성

업데이트: 2007년 11월

Visual Basic 컴파일러에는 런타임 오류를 발생시킬 가능성이 있는 코드에 대한 경고 집합이 포함되어 있습니다. 이 정보를 사용하면 버그를 줄이면서 더 명확하고 빠르고 우수한 코드를 작성할 수 있습니다. 예를 들어, 사용자가 할당되지 않은 개체 변수의 멤버를 호출하려고 할 경우, 반환 값을 설정하지 않고 함수를 반환하려고 할 경우 또는 논리에 오류가 있는 Try 블록을 실행하여 예외를 catch하려고 할 경우 컴파일러에서는 경고를 생성합니다.

경우에 따라 컴파일러에서는 추가 논리를 제공하여 사용자가 가능한 오류에 대비하는 대신 현재 작업에 집중할 수 있도록 합니다. 이전 버전의 Visual Basic에서는 Option Strict를 사용하여 Visual Basic 컴파일러에서 제공하는 추가 논리를 제한했습니다. 경고를 구성하면 개별 경고의 수준에서 더 구체적으로 이 논리를 제한할 수 있습니다.

프로젝트를 사용자 지정하여 응용 프로그램에 적절하지 않은 경고는 끄고 다른 경고는 오류로 전환할 수 있습니다. 이 페이지에서는 개별 경고를 켜고 끄는 방법을 설명합니다.

경고 켜고 끄기

경고를 구성하는 방법에는 두 가지가 있습니다. 프로젝트 디자이너를 사용하여 구성하거나 /warnaserror/nowarn 컴파일러 옵션을 사용할 수 있습니다.

프로젝트 디자이너 페이지의 컴파일 탭에서 경고를 켜거나 끌 수 있습니다. 모든 경고를 비활성화하려면 모든 경고 사용 안 함 확인란을 선택하고 모든 경고를 오류로 처리하려면 모든 경고를 오류로 처리를 선택합니다. 일부 개별 경고는 표시된 표에서 원하는 대로 오류 또는 경고로 전환할 수 있습니다.

Option Strict를 Off로 설정하면 Option Strict 관련 경고를 서로 독립적으로 처리할 수 없습니다. Option Strict를 On으로 설정하면 관련된 경고가 상태에 관계없이 오류로 처리됩니다. 명령줄 컴파일러에서 /optionstrict:custom을 지정하여 Option Strict를 Custom으로 설정하면 Option Strict 경고를 독립적으로 켜거나 끌 수 있습니다.

컴파일러의 /warnaserror 명령줄 옵션을 사용하여 경고를 오류로 처리할 것인지 여부를 지정할 수도 있습니다. 이 옵션에 쉼표로 구분된 목록을 추가함으로써 + 또는 - 기호를 사용하여 오류나 경고로 처리할 경고를 지정할 수 있습니다. 다음 표에서는 가능한 옵션에 대해 자세히 설명합니다.

명령줄 옵션

설명

/warnaserror+

모든 경고를 오류로 처리합니다.

/warnsaserror-

경고를 오류로 처리하지 않습니다. 기본값입니다.

/warnaserror+:<warning list>

쉼표로 구분된 목록에 오류 ID 번호로 나열된 특정 경고를 오류로 처리합니다.

/warnaserror-:<warning list>

쉼표로 구분된 목록에 오류 ID 번호로 나열된 특정 경고를 오류로 처리하지 않습니다.

/nowarn

경고를 보고하지 않습니다.

/nowarn:<warning list>

쉼표로 구분된 목록에 오류 ID 번호로 나열된 특정 경고를 보고하지 않습니다.

경고 목록에는 오류로 처리할 경고의 오류 ID 번호가 포함되어 있으며 이 목록을 명령줄 옵션과 함께 사용하여 특정 경고를 켜거나 끌 수 있습니다. 경고 목록에 잘못된 번호가 있으면 오류가 보고됩니다.

예제

명령줄 인수 예제가 나와 있는 이 표에서는 각 인수의 역할을 설명합니다.

인수

설명

vbc /warnaserror

모든 경고를 오류로 처리하도록 지정합니다.

vbc /warnaserror:42024

경고 42024를 오류로 처리하도록 지정합니다.

vbc /warnaserror:42024,42025

경고 42024 및 42025를 오류로 처리하도록 지정합니다.

vbc /nowarn

경고를 보고하지 않도록 지정합니다.

vbc /nowarn:42024

경고 42024를 보고하도록 지정합니다.

vbc /nowarn:42024,42025

경고 42024 및 42025를 보고하지 않도록 지정합니다.

경고 유형

다음은 오류로 처리할 수 있는 경고 목록입니다.

암시적 변환 경고

암시적 변환의 경우에 생성됩니다. & 연산자를 사용할 때 내장 숫자 형식을 문자열로 변환하는 암시적 변환은 여기에 포함되지 않습니다. 새 프로젝트의 기본값은 off입니다.

ID: 42016

런타임에 바인딩되는 메서드 호출 및 오버로드 확인 경고

런타임에 바인딩하는 경우에 생성됩니다. 새 프로젝트의 기본값은 off입니다.

ID: 42017

Object 형식의 피연산자 경고

Option Strict On을 함께 사용할 경우 오류가 발생하는 Object 형식의 피연산자가 있을 때 생성됩니다. 새 프로젝트의 기본값은 on입니다.

ID: 42018 및 42019

'As' 절이 필요한 선언 경고

변수, 함수 또는 속성 선언에 As 절이 없어서 Option Strict On에서 오류가 발생할 수 있는 경우에 생성됩니다. 형식이 할당되지 않은 변수는 Object 형식으로 간주됩니다. 새 프로젝트의 기본값은 on입니다.

ID: 42020(변수 선언), 42021(함수 선언) 및 42022(속성 선언)

null 참조 예외 가능 경고

값이 할당되기 전에 변수를 사용한 경우 생성됩니다. 새 프로젝트의 기본값은 on입니다.

ID: 42104, 42030

사용되지 않는 지역 변수 경고

지역 변수가 선언되었으나 참조되지 않는 경우 생성됩니다. 기본값은 on입니다.

ID: 42024

인스턴스 변수를 통해 공유 멤버 액세스 경고

인스턴스를 통해 공유 멤버에 액세스할 때 문제가 발생할 수 있거나, 인스턴스 변수를 통한 공유 멤버 액세스가 식의 오른쪽에 있지 않거나 매개 변수로 전달되는 경우에 생성됩니다. 새 프로젝트의 기본값은 on입니다.

ID: 42025

재귀 연산자 또는 속성 액세스 경고

루틴의 본문에서 해당 루틴에 정의되어 있는 것과 같은 연산자나 속성을 사용하는 경우 생성됩니다. 새 프로젝트의 기본값은 on입니다.

ID: 42004(연산자), 42026(속성)

반환 값 없는 함수 또는 연산자 경고

함수 또는 연산자에 반환 값이 지정되지 않은 경우에 발생합니다. 여기에는 함수와 이름이 같은 암시적 지역 변수에 Set을 생략한 경우가 포함됩니다. 새 프로젝트의 기본값은 on입니다.

ID: 42105(함수), 42016(연산자)

모듈에 사용된 오버로드 한정자 경고

Module에 Overloads를 사용한 경우에 발생합니다. 새 프로젝트의 기본값은 on입니다.

ID: 42028

중복되거나 겹치는 catch 블록 경고

정의된 다른 Catch 블록과의 관계 때문에 Catch 블록에 도달할 수 없는 경우에 생성됩니다. 새 프로젝트의 기본값은 on입니다.

ID: 42029, 42031

참고 항목

작업

방법: 컴파일러 경고 활성화/비활성화

개념

오류의 종류

참조

예외 도우미 대화 상자

/nowarn

/warnaserror(Visual Basic)

Compiler Warnings That Are Off by Default

기타 리소스

예외 처리 작업