做开发的过程中,搞着搞着出现异常了,这可怎么办

前言

在做android项目开发时,大家都知道如果程序出错了,会弹出来一个强制退出的弹 出框,这个本身没什么问题,但是这个UI实在是太丑了,别说用户接受不了,就连 我们自己本身可能都接受不了。虽然我们在发布程序时总会经过仔细的测试,但是 难免会碰到预料不到的错误。

顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找
https://github.com/xiangjiana/Android-MS
更多完整项目下载。未完待续。源码。图文知识后续上传github。
可以点击关于我联系我获取

今天就来自定义一个程序出错时的处理,类似iphone的闪退。(虽然闪退也是用户不 愿意看到的,但是在用户体验上明显比那个原生的弹窗好多了) 废话不多说,直接上代码:

CrashHandler
  /**
   * 自定义的 异常处理类 , 实现了 UncaughtExceptionHandler接口 
   *
   */ 
    public class CrashHandler implements UncaughtExceptionHandler { 
      // 需求是 整个应用程序 只有一个 MyCrash-Handler 
      private static CrashHandler INSTANCE ; 
      private Context context; 
    
      //1.私有化构造方法 
      private CrashHandler(){ 

      }

      public static synchronized CrashHandler getInstance(){ 
         if (INSTANCE == null) 
             INSTANCE = new CrashHandler(); 
         return INSTANCE;
      }
   
      public void init(Context context){ 
         this.context = context; 
      }

      public void uncaughtException(Thread arg0, Throwable arg1) { 
         System.out.println("程序挂掉了 "); 
         // 在此可以把用户手机的一些信息以及异常信息捕获并上传,由于UMeng在 这方面有很程序的api接口来调用,故没有考虑 
         //干掉当前的程序 
         android.os.Process.killProcess(android.os.Process.myPid( ));
      } 
  }
CrashApplication
  /**
   * 在开发应用时都会和Activity打交道,而Application使用的就相对较少了。 
   * Application是用来管理应用程序的全局状态的,比如载入资源文件。 
   * 在应用程序启动的时候Application会首先创建,然后才会根据情况(Intent)启 动相应的Activity或者Service。 
   * 在本文将在Application中注册未捕获异常处理器。
   */ 
    public class CrashApplication extends Application { 
       @Override 
       public void onCreate() { 
          super.onCreate(); 
          CrashHandler handler =  CrashHandler.getInstance(); 
          handler.init(getApplicationContext()); 
          Thread.setDefaultUncaughtExceptionHandler(handler); 
       }
   }
AndroidManifest.xml中注册
  <?xml version="1.0" encoding="utf-8"?> 
  <manifest xmlns:android="http://schemas.android.com/apk/res/andr oid"package="org.wp.activity" android:versionCode="1" android:ve rsionName="1.0"> 
  <application android:icon="@drawable/icon" android:label="@s tring/app_name" android:name=".CrashApplication" android:debuggable="tru e"> 
      <activity android:name=".MainActivity" android:label="@s tring/app_name"> 
           <intent-filter> 
                <action android:name="android.intent.action.MAIN" /> 
                <category android:name="android.intent.category. LAUNCHER" />
           </intent-filter> 
      </activity> 
    </application> 
    <uses-sdk android:minSdkVersion="8" /> 
  </manifest>

至此,可以测试下在出错的时候程序会直接闪退,并杀死后台进程。当然也可以自 定义一些比较友好的出错UI提示,进一步提升用户体验。
顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找
https://github.com/xiangjiana/Android-MS

更多完整项目下载。未完待续。源码。图文知识后续上传github。
可以点击关于我联系我获取

以下是一个使用C#进行SolidWorks二次开发自定义属性卡的基础教程示例: ### 1. 环境准备 需要安装SolidWorks软件,同时安装Visual Studio,并且在Visual Studio中添加对SolidWorks API的引用。 ### 2. 创建项目 在Visual Studio中创建一个新的C#类库项目。 ### 3. 引用SolidWorks API 在项目中添加对SolidWorks API的引用,通常可以在SolidWorks安装目录下找到相关的COM组件,如 `SolidWorks.Interop.sldworks.dll`、`SolidWorks.Interop.swconst.dll` 等。 ### 4. 代码示例 ```csharp using SolidWorks.Interop.sldworks; using SolidWorks.Interop.swconst; using System.Runtime.InteropServices; namespace SolidWorksCustomPropertyCard { [Guid("Your_GUID_Here"), ComVisible(true)] public class SolidWorksAddin : ISwAddin { private SldWorks swApp; public bool ConnectToSW(object ThisSW, int Cookie) { swApp = (SldWorks)ThisSW; // 注册自定义属性卡相关操作 return true; } public bool DisconnectFromSW() { // 清理资源 return true; } public void AddCustomPropertyCard() { // 获取当前活动文档 ModelDoc2 swModel = (ModelDoc2)swApp.ActiveDoc; if (swModel != null) { // 获取自定义属性管理器 CustomPropertyManager swCustPropMgr = swModel.Extension.CustomPropertyManager[""]; // 添加自定义属性 swCustPropMgr.Add3("PartType", (int)swCustomInfoType_e.swCustomInfoText, "DefaultType", (int)swCustomPropertyAddOption_e.swCustomPropertyDeleteAndAdd); // 这里可以根据需求添加更多自定义属性操作,例如根据选择的零部件信息进行编码 // 假设编码逻辑如下 string partType = swCustPropMgr.Get5("PartType", false); string code = GenerateCode(partType); // 将编码显示在属性编辑卡片中 swCustPropMgr.Set2("PartCode", code); } } private string GenerateCode(string partType) { // 简单的编码生成逻辑示例 return $"CODE_{partType}"; } } } ``` ### 5. 注册插件 在项目生成后,需要将生成的DLL文件注册为SolidWorks插件。可以通过以下步骤进行注册: - 打开命令提示符(以管理员身份运行)。 - 使用 `regasm` 命令注册DLL文件,例如:`regasm "YourDllPath.dll" /codebase`。 ### 6. 测试 启动SolidWorks软件,在SolidWorks中加载该插件。在设计模型过程中,可以调用 `AddCustomPropertyCard` 方法来添加自定义属性卡并进行相关操作。 ### 7. 注意事项 - 确保在操作自定义属性时,文档处于可编辑状态。 - 处理可能出现的异常,例如文档未打开、属性添加失败等情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值