| File: Microsoft\VisualBasic\FileIO\MalformedLineException.vb | Web Access |
| Project: src\runtime\src\libraries\Microsoft.VisualBasic.Core\src\Microsoft.VisualBasic.Core.vbproj (Microsoft.VisualBasic.Core) |
' Licensed to the .NET Foundation under one or more agreements. ' The .NET Foundation licenses this file to you under the MIT license. Option Explicit On Option Strict On Imports System Imports System.ComponentModel Imports System.Globalization Namespace Microsoft.VisualBasic.FileIO ''' <summary> ''' Indicates a line cannot be parsed into fields ''' </summary> ''' <remarks></remarks> <Serializable()> Public Class MalformedLineException Inherits Exception ''' <summary> ''' Creates a new exception with no properties set ''' </summary> ''' <remarks></remarks> Public Sub New() MyBase.New() End Sub ''' <summary> ''' Creates a new exception, setting Message and LineNumber ''' </summary> ''' <param name="message">The message for the exception</param> ''' <param name="lineNumber">The number of the line that is malformed</param> ''' <remarks></remarks> Public Sub New(ByVal message As String, ByVal lineNumber As Long) MyBase.New(message) m_LineNumber = lineNumber End Sub ''' <summary> ''' Creates a new exception, setting Message ''' </summary> ''' <param name="message">The message for the exception</param> ''' <remarks></remarks> Public Sub New(ByVal message As String) MyBase.New(message) End Sub ''' <summary> ''' Creates a new exception, setting Message, LineNumber, and InnerException ''' </summary> ''' <param name="message">The message for the exception</param> ''' <param name="lineNumber">The number of the line that is malformed</param> ''' <param name="innerException">The inner exception for the exception</param> ''' <remarks></remarks> Public Sub New(ByVal message As String, ByVal lineNumber As Long, ByVal innerException As Exception) MyBase.New(message, innerException) m_LineNumber = lineNumber End Sub ''' <summary> ''' Creates a new exception, setting Message and InnerException ''' </summary> ''' <param name="message">The message for the exception</param> ''' <param name="innerException">The inner exception for the exception</param> ''' <remarks></remarks> Public Sub New(ByVal message As String, ByVal innerException As Exception) MyBase.New(message, innerException) End Sub ''' <summary> ''' Constructor used for serialization ''' </summary> ''' <param name="info"></param> ''' <param name="context"></param> ''' <remarks></remarks> ' [Obsolete(Obsoletions.LegacyFormatterImplMessage, DiagnosticId = Obsoletions.LegacyFormatterImplDiagId, UrlFormat = Obsoletions.SharedUrlFormat)] <Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId:="SYSLIB0051", UrlFormat:="https://aka.ms/dotnet-warnings/{0}")> <EditorBrowsable(EditorBrowsableState.Never)> Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) MyBase.New(info, context) If info IsNot Nothing Then ' Fix FxCop violation ValidateArgumentsOfPublicMethods. m_LineNumber = info.GetInt32(LINE_NUMBER_PROPERTY) Else m_LineNumber = -1 End If End Sub ''' <summary> ''' The number of the offending line ''' </summary> ''' <value>The line number</value> ''' <remarks></remarks> <EditorBrowsable(EditorBrowsableState.Always)> Public Property LineNumber() As Long Get Return m_LineNumber End Get Set(ByVal value As Long) m_LineNumber = value End Set End Property ''' <summary> ''' Supports serialization ''' </summary> ''' <param name="info"></param> ''' <param name="context"></param> ''' <remarks></remarks> ' [Obsolete(Obsoletions.LegacyFormatterImplMessage, DiagnosticId = Obsoletions.LegacyFormatterImplDiagId, UrlFormat = Obsoletions.SharedUrlFormat)] <Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId:="SYSLIB0051", UrlFormat:="https://aka.ms/dotnet-warnings/{0}")> <EditorBrowsable(EditorBrowsableState.Never)> Public Overrides Sub GetObjectData(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) If info IsNot Nothing Then ' Fix FxCop violation ValidateArgumentsOfPublicMethods. info.AddValue(LINE_NUMBER_PROPERTY, m_LineNumber, GetType(Long)) End If MyBase.GetObjectData(info, context) End Sub ''' <summary> ''' Appends extra data to string so that it's available when the exception is caught as an Exception ''' </summary> ''' <returns>The base ToString plus the Line Number</returns> ''' <remarks></remarks> Public Overrides Function ToString() As String Return MyBase.ToString() & " " & SR.Format(SR.TextFieldParser_MalformedExtraData, LineNumber.ToString(CultureInfo.InvariantCulture)) End Function ' Holds the line number Private m_LineNumber As Long ' Name of property used for serialization Private Const LINE_NUMBER_PROPERTY As String = "LineNumber" End Class End Namespace