在VS.NET2003中使用Macro生成自定义异常代码

原创 2004年06月24日 23:07:00

 

写程序的时候,每次到了要自定一个异常,总是要啰里啰唆的敲上一大堆代码,而且这些代码细想起来也就无非是声明一个从System.Exception继承的类,然后在类中添加三个构造函数和一个自定错误的消息字符串,为了简化这种体力劳动,我利用VS2003自带的宏编辑器写了一小段代码,来帮助我自动完成这些东西。

1.首先打开你的宏编辑器(在VS2003种按下ALT+F11): 把下面的代码copy带编辑器中.

Imports EnvDTE
Imports System.Diagnostics
Imports Microsoft.Office.Core

    Sub AddException()
        Dim input As String
        Dim expName As String
        Dim expMsg As String

        Dim split As String() = Nothing
        Dim delimStr As String = ",.:;"
        Dim delimiter As Char() = delimStr.ToCharArray()
        Dim objTextDoc As TextDocument
        Dim objEditPt_Begin As EditPoint
        Dim objEditPt_End As EditPoint

        input = InputBox("Input as : ExceptionName;Message", "Auto Complete Exception", String.Empty)

        If input.Length = 0 Then
            Return
        End If

        split = input.Split(delimiter)

        expName = split(0)

        If split.Length = 2 Then
            expMsg = split(1)
        Else
            expMsg = "General Exception of " & expName
        End If


        DTE.UndoContext.Open("AddException", False)

        objTextDoc = DTE.ActiveDocument.Object("TextDocument")
        objEditPt_Begin = objTextDoc.Selection.ActivePoint.CreateEditPoint()

        objEditPt_Begin.Insert("public class " & expName & ": System.Exception " & vbCrLf)
        objEditPt_Begin.Insert("{" & vbCrLf)
        objEditPt_Begin.Insert("const string errMsg = """ & expMsg & """;" & vbCrLf)
        objEditPt_Begin.Insert(vbCrLf)
        objEditPt_Begin.Insert("public " & expName & "():base( errMsg )" & vbCrLf)
        objEditPt_Begin.Insert("{}" & vbCrLf)
        objEditPt_Begin.Insert(vbCrLf)
        objEditPt_Begin.Insert("public " & expName & "(string auxMessage):base( String.Format( ""{0} - {1}"",errMsg, auxMessage ))" & vbCrLf)
        objEditPt_Begin.Insert("{}" & vbCrLf)
        objEditPt_Begin.Insert(vbCrLf)
        objEditPt_Begin.Insert("public " & expName & "(string auxMessage, Exception inner ):base( String.Format( ""{0} - {1}"",errMsg, auxMessage ), inner)" & vbCrLf)
        objEditPt_Begin.Insert("{}" & vbCrLf)
        objEditPt_Begin.Insert("}" & vbCrLf)

        objEditPt_End = objTextDoc.Selection.ActivePoint.CreateEditPoint()
        objEditPt_Begin.LineUp(13)

        objEditPt_Begin.SmartFormat(objEditPt_End)

        DTE.UndoContext.Close()

    End Sub

2.在MacroExplorer中用右键菜单使这个宏运行起来。

3.宏运行后,然后会出现一个输入框,按照如下格式输入:ExceptionName splitter ExceptionMsg

例如:MyException;This is my exception

回车后就会在文件中生成你想要的Exception代码了,瞧一瞧,感觉还挺Cool 吧?你还可以在Option->keyboard中给这个Macro分配一个快捷键,例如:ALT+1,再试试,感觉写代码的痛苦程度至少减轻了10%。:)

    

Java中自定义异常的使用

Java中的自定义异常的使用步骤: 1.定义异常,并继承Exception,分别构造无参函数和有参构造函数,并在构造函数中分别调用父类的无参构造函数和有参构造函数 package co...
  • BlueSky_USC
  • BlueSky_USC
  • 2016年07月16日 10:25
  • 2671

eclipse中自定义异常块

java->Editor->Templates进行修改、 例如:创建一个try{}catch{}finally{]块 ${cursor}表示最后光标停留的位置 ${line_sele...
  • xpc8868
  • xpc8868
  • 2016年10月16日 13:05
  • 180

java项目经验总结之自定义异常类

在项目开发中遇到自定义异常,根据自己项目的需要进行相应的覆写,便于捕获和错误输出。 package org.dyb.exception; import java.io.PrintStream; i...
  • bq1073100909
  • bq1073100909
  • 2016年02月08日 16:25
  • 2671

vs.Net2003无法打开或创建Web应用程序若干解决办法

 问题一:不能创建web应用程序来源:http://dev.csdn.net/develop/article/19/19725.shtm1、当站点主目录没有创建应用程序: 通过FP扩展+虚拟目录的方式...
  • mubingyun
  • mubingyun
  • 2008年12月16日 13:28
  • 1041

C/C++中macro的一些特殊使用

ISO C++推出之后,C/C++中宏(macro)的使用一直都备受争议,就好像当年保守诟病的goto语句一样。有所不同的是,现在的C/C++代码中使用goto语句的使用率是越来越少了。而macro仍...
  • shinco
  • shinco
  • 2004年10月30日 01:26
  • 3414

springMVC自定义异常

spring有默认的exception处理方式,但是很多时候我们都需要自定义异常处理: 下面是spring中exception的结构: spring默认是采用SimpleMappingEx...
  • Mos_wen
  • Mos_wen
  • 2016年03月02日 14:51
  • 2090

Java中异常抛出和自定义异常

现在我们已经知道了什么是异常,也知道怎么去处理异常。 那么是如何抛出异常的呢?需要用到2个关键字:throw和throws。public void 方法名(参数列表) throws 异常列表 { ...
  • github_26672553
  • github_26672553
  • 2017年04月14日 16:54
  • 673

Java高级语法笔记-自定义异常类

自定义异常类 继承Exception,自定义异常类: 异常类要能够描述错误信息 比如,非法字符异常 IllegalCharException应该把非法字符的位置带上。 throws多种异...
  • qq78442761
  • qq78442761
  • 2018年01月09日 10:01
  • 71

Freemaker <#macro>(宏)的使用

关键字: 的使用 来源网址:http://jayjunyu.javaeye.com/blog/215727 用户定义指令-使用@符合来调用 有两种不同的类型:Macro(宏)和tran...
  • toto1297488504
  • toto1297488504
  • 2012年11月18日 00:51
  • 1948

vs2010Macro的使用方法总结

vs2010Macro的使用方法总结
  • lu_yongchao
  • lu_yongchao
  • 2016年11月29日 22:51
  • 447
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在VS.NET2003中使用Macro生成自定义异常代码
举报原因:
原因补充:

(最多只允许输入30个字)