What troubles me are the empty /**/ brackets. Is there a cleaner way of handling this logic?if (opcode == OP_0) { /* continue */}    else if (opcode == OP_1NEGATE) { /* continue */}    else if (opcode >= OP_1 && opcode <= OP_16) { /* continue */}    else { throw new Exception(decodeFromOpN called on non OP_N opcode); }
Checking opcode values
c#
What you could use is a function that returns whether an opcode is valid.private boolean isOpCode(Object opCode){    return opcode == OP_0 || opcode == OP_1NEGATE || (opcode >= OP_1 && opcode <= OP_16);}Then in your code you posted, call the function, and throw an exception if it returns false.if(!isOpCode(opCode)){    throw new OpCodeInvalidException(decodeFromOpN called on non OP_N opcode);}Replace Object with whatever the opcodes are.And make a new class that extends from Exception. It's generally bad practice to throw Exception.