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

VB.NET程序运行数分钟后抛出System.ArgumentException异常求助

解决VB.NET中System.Drawing.dll的ArgumentException未处理异常
  • 排查GDI+资源泄漏
    System.Drawing的对象(如Bitmap、Graphics、Pen)若未正确释放,长时间运行会耗尽资源引发参数异常。检查所有实现IDisposable的绘图相关对象,务必用Using语句包裹,或手动调用.Dispose():

    ' 推荐写法:Using自动释放资源
    Using bmp As New Bitmap(100, 100)
        Using g As Graphics = Graphics.FromImage(bmp)
            g.DrawRectangle(Pens.Black, 0, 0, 99, 99)
        End Using
    End Using
    
  • 验证文本框路径合法性
    结合你提供的文本框路径截图,确认程序中使用的文件/字体/图像路径是否存在、权限是否充足,或路径字符串是否含非法字符(如未转义的空格、特殊符号)。使用路径前可添加校验:

    Dim targetPath As String = TextBox1.Text
    If Not File.Exists(targetPath) Then
        MessageBox.Show("路径不存在,请检查输入")
        Return
    End If
    
  • 检查绘图参数有效性
    确认绘制时传入的坐标、尺寸等参数合法,比如调用DrawImage时,目标矩形的宽高不能为0或负数:

    If destRect.Width > 0 AndAlso destRect.Height > 0 Then
        g.DrawImage(srcImage, destRect)
    End If
    
  • 捕获异常定位代码
    在程序入口或关键绘图模块添加全局异常捕获,输出详细堆栈信息以定位出错代码行:

    AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf CurrentDomain_UnhandledException
    
    Private Sub CurrentDomain_UnhandledException(sender As Object, e As UnhandledExceptionEventArgs)
        Dim ex As Exception = DirectCast(e.ExceptionObject, Exception)
        MessageBox.Show($"异常信息:{ex.Message}{vbCrLf}调用堆栈:{ex.StackTrace}")
    End Sub
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 09:15:34