다음 예시에서는 ErrorProne.NET.CoreAnalyzers 라이브러리를 사용하여 NuGet에서 코드 분석기 또는 소스 제너레이터를 설치하는 방법을 설명합니다.
errorprone.net.coreanalyzers<version-number>\analyzers\dotnet\cs로 이동합니다. 필수 파일은 ErrorProne.NET.Core.dll, ErrorProne.Net.CoreAnalyzers.dll, RuntimeContracts.dll이라는 폴더에 있어야 합니다.RoslynAnalyzer를 입력하고 Return을 누릅니다. 이 레이블은 예시와 정확히 일치해야 하며 대소문자를 구분합니다. 첫 번째 분석기에 대한 레이블을 생성하면 사용 가능한 레이블 리스트가 Asset Labels 하위 메뉴에 표시됩니다. 메뉴에서 레이블 이름을 클릭하여 다른 분석기에 할당할 수 있습니다.Unity는 RoslynAnalyzer 레이블을 인식하고 이 레이블이 있는 에셋을 Roslyn Analyzers 또는 소스 제너레이터로 취급합니다. 분석기에 레이블을 할당하면 Unity는 분석기의 범위 내에 있는 스크립트를 다시 컴파일하고 분석기의 규칙에 따라 해당 스크립트의 코드를 분석합니다. 분석기와 동일한 어셈블리 정의 내에 있는 모든 스크립트는 해당 분석기의 범위에 속합니다. Assets 폴더의 루트 레벨에 있는 분석기의 경우 Unity는 프로젝트의 모든 파일을 범위 내에 있는 것으로 간주합니다. 범위에 대한 자세한 내용은 위의 분석기 범위를 참조하십시오.
분석기가 올바르게 작동하는지 테스트하려면 아래 예시를 따르십시오. 분석기를 올바르게 설치한 경우 ErrorProne.NET 분석기가 예시의 코드를 분석할 때 경고를 표시합니다.
RethrowError.cs라는 이름의 새 스크립트를 생성합니다. 다음 코드를 이 스크립트에 복사하고 파일을 저장합니다.
using System;
using UnityEngine;
public class RethrowError : MonoBehaviour
{
void Update()
{
try
{
DoSomethingInteresting();
}
catch (Exception e)
{
Debug.Log(e.Message);
throw e;
}
}
private void DoSomethingInteresting()
{
throw new System.NotImplementedException();
}
}
파일을 저장하면 Unity는 스크립트를 다시 컴파일하고 해당 스크립트의 코드에 적용 가능한 분석기를 실행합니다. ErrorProne.NET 분석기가 올바르게 설치되면 위 코드에 대한 다음 경고가 콘솔 창에 표시됩니다.
Assets\RethrowError.cs(14,23): warning EPC12: Suspicious exception handling: only e.Message is observed in exception block.
Assets\RethrowError.cs(15,19): warning ERP021: Incorrect exception propagation. Use throw; instead.