Configuring Warnings in Visual BasicConfiguring Warnings in Visual Basic

Visual BasicVisual Basic 컴파일러에는 런타임 오류를 일으킬 수 있는 코드에 대한 일련의 경고가 포함됩니다.The Visual BasicVisual Basic compiler includes a set of warnings about code that may cause run-time errors. 이 정보를 사용하여 버그가 더 적으면서 더 깔끔하고 더 빠르고 더 나은 코드를 작성할 수 있습니다.You can use that information to write cleaner, faster, better code with fewer bugs. 예를 들어 컴파일러에서는 사용자가 할당되지 않은 개체 변수의 멤버를 호출하거나, 반환 값을 설정하지 않고 함수에서 반환되거나, 예외를 catch하기 위한 논리에서 오류가 있는 Try 블록을 실행하려고 시도할 경우 경고를 생성합니다.For example, the compiler will produce a warning when the user attempts to invoke a member of an unassigned object variable, return from a function without setting the return value, or execute a Try block with errors in the logic to catch exceptions.

경우에 따라 컴파일러에서는 사용자가 오류 발생이 예상되는 작업이 아닌 긴급한 작업에 집중할 수 있도록 사용자 대신 추가 논리를 제공합니다.Sometimes the compiler provides extra logic on the user's behalf so that the user can focus on the task at hand, rather than on anticipating possible errors. Visual BasicVisual Basic의 이전 버전에서 Option StrictVisual BasicVisual Basic 컴파일러가 제공하는 추가 논리를 제한하는 데 사용되었습니다.In previous versions of Visual BasicVisual Basic, Option Strict was used to limit the additional logic that the Visual BasicVisual Basic compiler provides. 경고를 구성하면 이 논리를 개별 경고 수준에서 더 세밀하게 제한할 수 있습니다.Configuring warnings allows you to limit this logic in a more granular way, at the level of the individual warnings.

프로젝트를 사용자 지정하고 응용 프로그램에 관련되지 않은 일부 경고를 끄면서 다른 경고를 오류로 전환하고자 할 수 있습니다.You may want to customize your project and turn off some warnings not pertinent to your application while turning other warnings into errors. 이 페이지에서는 개별 경고를 켜고 끄는 방법을 설명합니다.This page explains how to turn individual warnings on and off.

경고 끄기 및 켜기Turning Warnings Off and On

경고를 구성하는 방법은 두 가지입니다. 프로젝트 디자이너를 사용하여 구성하거나 /warnaserror/nowarn 컴파일러 옵션을 사용할 수 있습니다.There are two different ways to configure warnings: you can configure them using the Project Designer, or you can use the /warnaserror and /nowarn compiler options.

프로젝트 디자이너 페이지의 컴파일 탭에서 경고를 켜고 끌 수 있습니다.The Compile tab of the Project Designer page allows you to turn warnings on and off. 모든 경고를 사용하지 않으려면 모든 경고 사용 안 함 확인란을 선택하고, 모든 경고를 오류로 처리하려면 모든 경고를 오류로 처리를 선택합니다.Select the Disable All Warnings check box to disable all warnings; select the Treat All Warnings as Errors to treat all warnings as errors. 표시된 표에서 원하는 대로 일부 개별 경고를 오류 또는 경고로 토글할 수 있습니다.Some individual warnings can be toggled as error or warning as desired in the displayed table.

Option Strict끄기로 설정되면 Option Strict 관련 경고를 서로 개별적으로 처리할 수 없습니다.When Option Strict is set to Off, Option Strict related warnings cannot be treated independently of each other. Option Strict켜기로 설정되면 상태에 관계없이 관련 경고가 오류로 처리됩니다.When Option Strict is set to On, the associated warnings are treated as errors, no matter what their status is. 명령줄 컴파일러에서 /optionstrict:custom을 지정하여 Option Strict사용자 지정으로 설정되면 Option Strict 경고를 개별적으로 켜고 끌 수 있습니다.When Option Strict is set to Custom by specifying /optionstrict:custom in the command line compiler, Option Strict warnings can be toggled on or off independently.

컴파일러의 /warnaserror 명령줄 옵션을 사용하여 경고를 오류로 처리할지 여부를 지정할 수도 있습니다.The /warnaserror command-line option of the compiler can also be used to specify whether warnings are treated as errors. + 또는 -를 사용하여 이 목록에 쉼표로 구분된 목록을 추가하면 어떤 경고를 오류 또는 경고로 처리할지 지정할 수 있습니다.You can add a comma delimited list to this option to specify which warnings should be treated as errors or warnings by using + or -. 다음 표에서는 가능한 옵션을 자세히 설명합니다.The following table details the possible options.

명령줄 옵션Command-line option 설명Specifies
/warnaserror+ 모든 경고를 오류로 처리합니다.Treat all warnings as errors
/warnsaserror- 경고를 오류로 처리하지 않습니다.Do not treat as warnings as errors. 이 값이 기본값입니다.This is the default.
/warnaserror+:<warning list >/warnaserror+:<warning list > 해당 오류 ID 번호가 쉼표로 구분된 목록으로 나열된 특정 경고를 오류로 처리합니다.Treat specific warnings as errors, listed by their error ID number in a comma delimited list r.
/warnaserror-:<warning list> 해당 오류 ID 번호가 쉼표로 구분된 목록으로 나열된 특정 경고를 오류로 처리하지 않습니다.Do not treat specific warnings as errors, listed by their error ID number in a comma delimited list.
/nowarn 경고를 보고하지 않습니다.Do not report warnings.
/nowarn:<warning list> 해당 오류 ID 번호가 쉼표로 구분된 목록으로 나열된 지정된 경고를 보고하지 않습니다.Do not report specified warnings, listed by their error ID number in a comma delimited list.

경고 목록에는 오류로 처리되어야 하는 경고의 오류 ID 번호가 포함되고 이 오류 ID 번호는 명령줄 옵션과 함께 특정 경고를 켜거나 끄는 데 사용될 수 있습니다.The warning list contains the error ID numbers of the warnings that should be treated as errors, which can be used with the command-line options to turn specific warnings on or off. 경고 목록에 잘못된 번호가 있으면 오류가 보고됩니다.If the warning list contains an invalid number, an error is reported.

예제Examples

이 명령줄 인수 예제에 대한 표에서는 각 인수가 수행하는 작업을 설명합니다.This table of examples of command line arguments describes what each argument does.

인수Argument 설명Description
vbc /warnaserror 모든 경고를 오류로 처리하도록 지정합니다.Specifies that all warnings should be treated as errors.
vbc /warnaserror:42024 경고 42024가 오류로 처리되도록 지정합니다.Specifies that warning 42024 should be treated as an error.
vbc /warnaserror:42024,42025 경고 42024 및 42025가 오류로 처리되도록 지정합니다.Specifies that warnings 42024 and 42025 should be treated as errors.
vbc /nowarn 경고가 보고되지 않도록 지정합니다.Specifies that no warnings should be reported.
vbc /nowarn:42024 경고 42024가 보고되지 않도록 지정합니다.Specifies that warning 42024 should not be reported.
vbc /nowarn:42024,42025 경고 42024 및 42025가 보고되지 않도록 지정합니다.Specifies that warnings 42024 and 42025 should not be reported.

경고 형식Types of Warnings

오류로 처리할 수 있는 경고 목록은 다음과 같습니다.Following is a list of warnings that you might want to treat as errors.

암시적 변환 경고Implicit Conversion Warning

암시적 변환 인스턴스에 대해 생성됩니다.Generated for instances of implicit conversion. & 연산자를 사용할 때 내부 숫자 형식을 문자열로 암시적으로 변환하는 경우는 포함되지 않습니다.They do not include implicit conversions from an intrinsic numeric type to a string when using the & operator. 새 프로젝트의 기본값은 끄기입니다.Default for new projects is off.

ID: 42016ID: 42016

런타임에 바인딩 메서드 호출 및 오버로드 확인 경고Late bound Method Invocation and Overload Resolution Warning

런타임에 바인딩 인스턴스에 대해 생성됩니다.Generated for instances of late binding. 새 프로젝트의 기본값은 끄기입니다.Default for new projects is off.

ID: 42017ID: 42017

Object 형식 경고의 피연산자Operands of Type Object Warnings

Option Strict On 관련 오류를 생성하는 Object 형식의 피연산자가 발생할 경우 생성됩니다.Generated when operands of type Object occur that would create an error with Option Strict On. 새 프로젝트의 기본값은 켜기입니다.Default for new projects is on.

ID: 42018 및 42019ID: 42018 and 42019

선언에 'As' 절 필요 경고Declarations Require 'As' Clause Warnings

As 절이 없는 변수, 함수 또는 속성 선언에서 Option Strict On 관련 오류가 발생할 경우 생성됩니다.Generated when a variable, function, or property declaration lacking an As clause would have created an error with Option Strict On. 형식이 할당되지 않은 변수는 Object 형식으로 간주합니다.Variables that do not have a type assigned to them are assumed to be type Object. 새 프로젝트의 기본값은 켜기입니다.Default for new projects is on.

ID: 42020(변수 선언), 42021(함수 선언) 및 42022(속성 선언).ID: 42020 (variable declaration), 42021 (function declaration), and 42022 (property declaration).

가능한 Null 참조 예외 경고Possible Null Reference Exception Warnings

값이 할당되기 전에 변수가 사용된 경우 생성됩니다.Generated when a variable is used before it has been assigned a value. 새 프로젝트의 기본값은 켜기입니다.Default for new projects is on.

ID: 42104, 42030ID: 42104, 42030

사용되지 않는 로컬 변수 경고Unused Local Variable Warning

로컬 변수가 선언되었지만 참조된 적이 없는 경우 생성됩니다.Generated when a local variable is declared but never referred to. 기본값은 켜기입니다.Default is on.

ID: 42024ID: 42024

인스턴스 변수를 통한 공유 멤버 액세스 경고Access of Shared member through Instance Variable Warning

인스턴스를 통한 공유 멤버 액세스에 부작용이 있을 수 있는 경우나 인스턴스 변수를 통한 공유 멤버 액세스가 식의 오른쪽에서 이루어지지 않거나 매개 변수로 전달되고 있는 경우 생성됩니다.Generated when accessing a shared member through an instance may have side effects, or when accessing a shared member through an instance variable is not the right-hand side of an expression or is being passed in as a parameter. 새 프로젝트의 기본값은 켜기입니다.Default for new projects is on.

ID: 42025ID: 42025

재귀 연산자 또는 속성 액세스 경고Recursive Operator or Property Access Warnings

루틴의 본문에서 루틴이 정의된 같은 연산자 또는 속성을 사용하는 경우 생성됩니다.Generated when the body of a routine uses the same operator or property it is defined in. 새 프로젝트의 기본값은 켜기입니다.Default for new projects is on.

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

반환 값이 없는 함수/연산자 경고Function or Operator without Return Value Warning

함수 또는 연산자에 반환 값이 지정되지 않은 경우 생성됩니다.Generated when the function or operator does not have a return value specified. 이 경고에는 함수와 이름이 같은 암시적 로컬 변수에 대한 Set이 생략된 경우가 포함됩니다.This includes omitting a Set to the implicit local variable with the same name as the function. 새 프로젝트의 기본값은 켜기입니다.Default for new projects is on.

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

모듈에 사용되는 오버로드 한정자 경고Overloads Modifier Used in a Module Warning

OverloadsModule에 사용될 경우 생성됩니다.Generated when Overloads is used in a Module. 새 프로젝트의 기본값은 켜기입니다.Default for new projects is on.

ID: 42028ID: 42028

중복되거나 겹치는 catch 블록 경고Duplicate or Overlapping Catch Blocks Warnings

정의되지 않은 다른 Catch 블록에 대한 관계로 인해 Catch 블록에 도달하지 못한 경우 생성됩니다.Generated when a Catch block is never reached due to its relation to other Catch blocks that have been defined. 새 프로젝트의 기본값은 켜기입니다.Default for new projects is on.

ID: 42029, 42031ID: 42029, 42031

참고 항목See Also

오류 형식 Error Types
Try...Catch...Finally 문 Try...Catch...Finally Statement
/nowarn /nowarn
/warnaserror(Visual Basic) /warnaserror (Visual Basic)
프로젝트 디자이너, 컴파일 페이지(Visual Basic) Compile Page, Project Designer (Visual Basic)
기본적으로 해제되어 있는 컴파일러 경고Compiler Warnings That Are Off by Default