1 #Region "Microsoft.VisualBasic::35abd1a79bec5f6e2a38549042a1cfe5, Microsoft.VisualBasic.Core\ApplicationServices\Debugger\VisualBasicAppException.vb"
2
3     ' Author:
4     
5     '       asuka (amethyst.asuka@gcmodeller.org)
6     '       xie (genetics@smrucc.org)
7     '       xieguigang (xie.guigang@live.com)
8     
9     ' Copyright (c) 2018 GPL3 Licensed
10     
11     
12     ' GNU GENERAL PUBLIC LICENSE (GPL3)
13     
14     
15     ' This program is free software: you can redistribute it and/or modify
16     ' it under the terms of the GNU General Public License as published by
17     ' the Free Software Foundation, either version 3 of the License, or
18     ' (at your option) any later version.
19     
20     ' This program is distributed in the hope that it will be useful,
21     ' but WITHOUT ANY WARRANTY; without even the implied warranty of
22     ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23     ' GNU General Public License for more details.
24     
25     ' You should have received a copy of the GNU General Public License
26     ' along with this program. If not, see <http://www.gnu.org/licenses/>.
27
28
29
30     ' /********************************************************************************/
31
32     ' Summaries:
33
34     '     Class VisualBasicAppException
35     
36     '         Properties: args, Environment, System
37     
38     '         Constructor: (+1 OverloadsSub New
39     '         Function: Creates
40     
41     '     Module ExceptionExtensions
42     
43     '         Function: Fail
44     
45     
46     ' /********************************************************************************/
47
48 #End Region
49
50 Imports System.Runtime.CompilerServices
51
52 Namespace ApplicationServices.Debugging
53
54     ''' <summary>
55     ''' VisualBasic application exception wrapper
56     ''' </summary>
57     Public Class VisualBasicAppException : Inherits Exception
58
59         ''' <summary>
60         ''' The CLI arguments string
61         ''' </summary>
62         ''' <returns></returns>
63         Public Property args As String
64         ''' <summary>
65         ''' The internal App environment variables
66         ''' </summary>
67         ''' <returns></returns>
68         Public Property Environment As Dictionary(Of StringString)
69         ''' <summary>
70         ''' The system version information
71         ''' </summary>
72         ''' <returns></returns>
73         Public Property System As Dictionary(Of StringString)
74
75         ''' <summary>
76         ''' <see cref="Exception"/> inner wrapper
77         ''' </summary>
78         ''' <param name="ex">The exception details</param>
79         ''' <param name="calls">Method name where occurs this exception.</param>
80         Sub New(ex As Exception, calls As String)
81             MyBase.New("@" & calls, ex)
82         End Sub
83
84         Public Shared Function Creates(msg As String, calls As StringAs VisualBasicAppException
85             Return New VisualBasicAppException(New Exception(msg), calls)
86         End Function
87     End Class
88
89     Public Module ExceptionExtensions
90
91         ''' <summary>
92         ''' Just throw exception, but the exception contains more details information for the debugging
93         ''' </summary>
94         ''' <param name="msg$"></param>
95         ''' <returns></returns>
96         Public Function Fail(msg$, <CallerMemberName> Optional caller$ = ""As VisualBasicAppException
97             Return VisualBasicAppException.Creates(msg, caller)
98         End Function
99     End Module
100 End Namespace