Blazor ErrorBoundary 試用紀錄
ErrorBoundary.
說明
個人試用結論
開發環境
程式碼紀錄
沒圖沒真像


Last updated
ErrorBoundary.


Last updated
@page "/DEMO013"
@attribute [AllowAnonymous]
<PageTitle>ErrorBoundary 測試</PageTitle>
<MudContainer>
<h3>ErrorBoundary 測試</h3>
<input type="number" @bind=@number />
<br />
@* 該<ErrorBoundary>元件會捕捉 Component 產生的錯誤 *@
<ErrorBoundary @ref=errorBoundary>
<ChildContent>
<DisplayNumber Number=@number />
</ChildContent>
<ErrorContent Context="ex">
<MudAlert Severity=Severity.Error>
發生意想不到的例外!@ex.Message<br />
<MudButton Variant=Variant.Outlined Color=Color.Error Size=Size.Small OnClick=Recover>還原</MudButton>
</MudAlert>
</ErrorContent>
</ErrorBoundary>
</MudContainer>
@code {
//## resource
ErrorBoundary errorBoundary;
//## State
int number = 1;
void Recover()
{
errorBoundary.Recover();
number = 1; // 重置或還原上次正常的狀態值
}
}<div>Number:@Number</div>
<button @onclick=ThrowError>[throw a testing error]</button>
@code {
[Parameter] public int Number { get; set; }
protected override void OnParametersSet()
{
base.OnParametersSet();
if (Number < 1)
{
throw new ApplicationException("數值必需為正數!");
}
}
void ThrowError()
{
throw new ApplicationException("丟出測試用錯誤訊息。");
}
}