⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exceptionrecord.java

📁 专业汽车级嵌入式操作系统OSEK的源代码
💻 JAVA
字号:
package js.tinyvm;import java.io.IOException;import js.tinyvm.io.IByteWriter;import js.tinyvm.io.IOUtilities;import org.apache.bcel.classfile.CodeException;import org.apache.bcel.classfile.ConstantClass;import org.apache.bcel.classfile.JavaClass;public class ExceptionRecord implements WritableData{   CodeException iExcep;   int iClassIndex;   public ExceptionRecord (CodeException aExcep, Binary aBinary, JavaClass aCF)      throws Exception   {      iExcep = aExcep;      int pCPIndex = aExcep.getCatchType();      if (pCPIndex == 0)      {         // An index of 0 means ANY.         iClassIndex = aBinary.getClassIndex("java/lang/Throwable");      }      else      {         ConstantClass pCls = (ConstantClass) aCF.getConstantPool()            .getConstant(pCPIndex);         String pName = pCls.getBytes(aCF.getConstantPool());         iClassIndex = aBinary.getClassIndex(pName);      }      if (iClassIndex == -1)      {         throw new TinyVMException("Exception not found: " + iExcep);      }   }   public int getLength ()   {      return IOUtilities.adjustedSize(2 + // start         2 + // end         2 + // handler         1, // class index         2);   }   public void dump (IByteWriter aOut) throws TinyVMException   {      int pStart = iExcep.getStartPC();      int pEnd = iExcep.getEndPC();      int pHandler = iExcep.getHandlerPC();      if (pStart > TinyVMConstants.MAX_CODE || pEnd > TinyVMConstants.MAX_CODE         || pHandler > TinyVMConstants.MAX_CODE)      {         throw new TinyVMException("Exception handler with huge PCs");      }      try      {         aOut.writeU2(pStart);         aOut.writeU2(pEnd);         aOut.writeU2(pHandler);         aOut.writeU1(iClassIndex);         IOUtilities.writePadding(aOut, 2);      }      catch (IOException e)      {         throw new TinyVMException(e.getMessage(), e);      }   }   public boolean equals (Object aOther)   {      if (!(aOther instanceof ExceptionRecord))         return false;      return ((ExceptionRecord) aOther).iExcep.equals(iExcep);   }   public int hashCode ()   {      return iExcep.hashCode();   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -