You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maui Blazor在iPhone真机出现未处理错误,如何查看错误输出?

如何查看MAUI Blazor在iPhone真机上的错误输出

问题说明

使用Visual Studio 2022 for Windows通过USB线调试MAUI Blazor应用到iPhone真机时,打开应用弹出错误提示:"An unhandled error has occurred. Reload"。尝试通过chrome://inspect/#devices检查设备,但未显示iPhone。以下是index.razor中的代码:

@if (dataObjects is not null)
{
    @foreach (var product in dataObjects)
    {
        @if (@product.Sl.HasValue)
        {
            <tr>
                <td>Số Lượng: @product.Sl</td>
            </tr>
            <tr>
                <td>Tiền Mặt: @Math.Round(product.TienMat.Value, 2).ToString("n2")</td>
            </tr>
            <tr>
                <td>
                    Thẻ:
                    @if (@product.The.HasValue)
                        @Math.Round(product.The.Value, 2).ToString("n2")
                </td>
            </tr>
            <tr>
                <td> Lợi Nhuận: @Math.Round(product.LoiNhuan.Value, 2).ToString("n2")</td>
            </tr>
        }
    }
}

<button @onclick="OnRefreshClicked">Refresh</button>

@code {
    private List<ThongTinBanHangTrongNgay> dataObjects;
    private HttpClient client;
    private UltiHelps ultiHelps;

    private async Task OnRefreshClicked()
    {
        client = new HttpClient();
        TimeZoneInfo zone = TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time");
        DateTime australianNow = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, zone);
        String TodayDate = australianNow.ToString("yyyy-MM-dd");
        HttpResponseMessage response = await client.GetAsync("XXXXX");
        if (response.IsSuccessStatusCode)
        {
            string json = await response.Content.ReadAsStringAsync();
            dataObjects = JsonConvert.DeserializeObject<List<ThongTinBanHangTrongNgay>>(json);
        }
    }
}

查看错误输出的方案

1. 利用Visual Studio调试输出窗口

  • 确保已连接iPhone并启动调试会话。
  • 打开输出窗口(通过菜单视图 > 输出或快捷键Ctrl+W, O调出)。
  • 在输出窗口的下拉列表中选择对应MAUI Blazor应用的进程,实时查看错误日志和调试信息。

2. 在应用中添加错误捕获逻辑

  • 在MainLayout.razor中使用ErrorBoundary捕获全局未处理异常:
<ErrorBoundary>
    @Body
    @if (context is not null)
    {
        <div class="alert alert-danger">
            错误:@context.Error.Message
        </div>
    }
</ErrorBoundary>
  • 或者在OnRefreshClicked方法中添加try-catch块,直接输出错误到控制台:
private async Task OnRefreshClicked()
{
    try
    {
        // 原有业务代码
    }
    catch (Exception ex)
    {
        Console.WriteLine($"错误详情:{ex.Message}\n堆栈跟踪:{ex.StackTrace}");
        StateHasChanged();
    }
}

3. 使用Safari开发者工具调试

  • 在iPhone上进入设置 > Safari浏览器 > 高级,开启Web检查器。
  • 在Mac上打开Safari,进入开发菜单(若未显示,需在Safari偏好设置的高级中勾选在菜单栏中显示开发菜单),找到你的iPhone设备,选择对应的MAUI Blazor应用页面。
  • 通过Safari开发者工具查看控制台错误、网络请求详情等信息。

4. 排查设备连接问题

  • 确保iPhone已信任连接的Windows电脑(iPhone弹出信任提示时选择信任)。
  • 确认Visual Studio已安装最新的MAUI和iOS调试组件,且iPhone的iOS版本与组件兼容。
  • 尝试重启iPhone和Visual Studio,重新建立USB连接。

内容的提问来源于stack exchange,提问作者Nguyen Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 02:16:29