Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
exceptions.hpp File Reference
#include <fc/exception/exception.hpp>
#include <boost/core/typeinfo.hpp>
Include dependency graph for exceptions.hpp:

Go to the source code of this file.

Namespaces

namespace  sysio
 
namespace  sysio::chain
 

Macros

#define SYS_ASSERT(expr, exc_type, FORMAT, ...)
 
#define SYS_THROW(exc_type, FORMAT, ...)
 
#define SYS_RETHROW_EXCEPTIONS(exception_type, FORMAT, ...)
 
#define SYS_CAPTURE_AND_RETHROW(exception_type, ...)
 
#define CATCH_AND_CALL(NEXT)
 
#define SYS_RECODE_EXC(cause_type, effect_type)
 
#define FC_DECLARE_DERIVED_EXCEPTION_WITH_ERROR_CODE(TYPE, BASE, CODE, WHAT)
 

Enumerations

enum class  sysio::chain::system_error_code : uint64_t { sysio::chain::generic_system_error = 10000000000000000000ULL , sysio::chain::contract_restricted_error_code }
 

Functions

 sysio::chain::FC_DECLARE_DERIVED_EXCEPTION_WITH_ERROR_CODE (chain_exception, fc::exception, 3000000, "blockchain exception") FC_DECLARE_DERIVED_EXCEPTION(chain_type_exception
 
chain type exception sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (name_type_exception, chain_type_exception, 3010001, "Invalid name") FC_DECLARE_DERIVED_EXCEPTION(public_key_type_exception
 
key sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (private_key_type_exception, chain_type_exception, 3010003, "Invalid private key") FC_DECLARE_DERIVED_EXCEPTION(authority_type_exception
 
key Invalid authority sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (action_type_exception, chain_type_exception, 3010005, "Invalid action") FC_DECLARE_DERIVED_EXCEPTION(transaction_type_exception
 
key Invalid authority Invalid transaction sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (abi_type_exception, chain_type_exception, 3010007, "Invalid ABI") FC_DECLARE_DERIVED_EXCEPTION(block_id_type_exception
 
key Invalid authority Invalid transaction Invalid block ID sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (transaction_id_type_exception, chain_type_exception, 3010009, "Invalid transaction ID") FC_DECLARE_DERIVED_EXCEPTION(packed_transaction_type_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (asset_type_exception, chain_type_exception, 3010011, "Invalid asset") FC_DECLARE_DERIVED_EXCEPTION(chain_id_type_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (fixed_key_type_exception, chain_type_exception, 3010013, "Invalid fixed key") FC_DECLARE_DERIVED_EXCEPTION(symbol_type_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (unactivated_key_type, chain_type_exception, 3010015, "Key type is not a currently activated type") FC_DECLARE_DERIVED_EXCEPTION(unactivated_signature_type
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (fork_database_exception, chain_exception, 3020000, "Fork database exception") FC_DECLARE_DERIVED_EXCEPTION(fork_db_block_not_found
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (block_validate_exception, chain_exception, 3030000, "Block exception") FC_DECLARE_DERIVED_EXCEPTION(unlinkable_block_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (block_tx_output_exception, block_validate_exception, 3030002, "Transaction outputs in block do not match transaction outputs from applying block") FC_DECLARE_DERIVED_EXCEPTION(block_concurrency_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (block_lock_exception, block_validate_exception, 3030004, "Shard locks in block are incorrect or mal-formed") FC_DECLARE_DERIVED_EXCEPTION(block_resource_exhausted
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (block_too_old_exception, block_validate_exception, 3030006, "Block is too old to push") FC_DECLARE_DERIVED_EXCEPTION(block_from_the_future
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (wrong_signing_key, block_validate_exception, 3030008, "Block is not signed with expected key") FC_DECLARE_DERIVED_EXCEPTION(wrong_producer
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (invalid_block_header_extension, block_validate_exception, 3030010, "Invalid block header extension") FC_DECLARE_DERIVED_EXCEPTION(ill_formed_protocol_feature_activation
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (invalid_block_extension, block_validate_exception, 3030012, "Invalid block extension") FC_DECLARE_DERIVED_EXCEPTION(ill_formed_additional_block_signatures_extension
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (transaction_exception, chain_exception, 3040000, "Transaction exception") FC_DECLARE_DERIVED_EXCEPTION(tx_decompression_error
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (tx_no_action, transaction_exception, 3040002, "Transaction should have at least one normal action") FC_DECLARE_DERIVED_EXCEPTION(tx_no_auths
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (cfa_irrelevant_auth, transaction_exception, 3040004, "Context-free action should have no required authority") FC_DECLARE_DERIVED_EXCEPTION(expired_tx_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (tx_exp_too_far_exception, transaction_exception, 3040006, "Transaction Expiration Too Far") FC_DECLARE_DERIVED_EXCEPTION(invalid_ref_block_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (tx_duplicate, transaction_exception, 3040008, "Duplicate transaction") FC_DECLARE_DERIVED_EXCEPTION(deferred_tx_duplicate
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (cfa_inside_generated_tx, transaction_exception, 3040010, "Context free action is not allowed inside generated transaction") FC_DECLARE_DERIVED_EXCEPTION(tx_not_found
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (too_many_tx_at_once, transaction_exception, 3040012, "Pushing too many transactions at once") FC_DECLARE_DERIVED_EXCEPTION(tx_too_big
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (unknown_transaction_compression, transaction_exception, 3040014, "Unknown transaction compression") FC_DECLARE_DERIVED_EXCEPTION(invalid_transaction_extension
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (ill_formed_deferred_transaction_generation_context, transaction_exception, 3040016, "Transaction includes an ill-formed deferred transaction generation context extension") FC_DECLARE_DERIVED_EXCEPTION(disallowed_transaction_extensions_bad_block_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed sysio::chain::extensions (invalid block)" ) FC_DECLARE_DERIVED_EXCEPTION( tx_resource_exhaustion
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (action_validate_exception, chain_exception, 3050000, "Action validate exception") FC_DECLARE_DERIVED_EXCEPTION(account_name_exists_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (invalid_action_args_exception, action_validate_exception, 3050002, "Invalid Action Arguments") FC_DECLARE_DERIVED_EXCEPTION(sysio_assert_message_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (sysio_assert_code_exception, action_validate_exception, 3050004, "sysio_assert_code assertion failure") FC_DECLARE_DERIVED_EXCEPTION(action_not_found_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (action_data_and_struct_mismatch, action_validate_exception, 3050006, "Mismatch between action data and its struct") FC_DECLARE_DERIVED_EXCEPTION(unaccessible_api
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (abort_called, action_validate_exception, 3050008, "Abort Called") FC_DECLARE_DERIVED_EXCEPTION(inline_action_too_big
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (unauthorized_ram_usage_increase, action_validate_exception, 3050010, "Action attempts to increase RAM usage of account without authorization") FC_DECLARE_DERIVED_EXCEPTION(restricted_error_code_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (inline_action_too_big_nonprivileged, action_validate_exception, 3050012, "Inline action exceeds maximum size limit for a non-privileged account") FC_DECLARE_DERIVED_EXCEPTION(action_return_value_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (database_exception, chain_exception, 3060000, "Database exception") FC_DECLARE_DERIVED_EXCEPTION(permission_query_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (account_query_exception, database_exception, 3060002, "Account Query Exception") FC_DECLARE_DERIVED_EXCEPTION(contract_table_query_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (contract_query_exception, database_exception, 3060004, "Contract Query Exception") FC_DECLARE_DERIVED_EXCEPTION(bad_database_version_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (guard_exception, database_exception, 3060100, "Guard Exception") FC_DECLARE_DERIVED_EXCEPTION(database_guard_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (wasm_exception, chain_exception, 3070000, "WASM Exception") FC_DECLARE_DERIVED_EXCEPTION(page_memory_error
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels Error in WASM page memory sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (wasm_execution_error, wasm_exception, 3070002, "Runtime Error Processing WASM") FC_DECLARE_DERIVED_EXCEPTION(wasm_serialization_error
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels Error in WASM page memory Serialization Error Processing WASM sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (overlapping_memory_error, wasm_exception, 3070004, "memcpy with overlapping memory") FC_DECLARE_DERIVED_EXCEPTION(binaryen_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels Error in WASM page memory Serialization Error Processing WASM binaryen exception sysio::chain::FC_DECLARE_DERIVED_EXCEPTION (resource_exhausted_exception, chain_exception, 3080000, "Resource exhausted exception") FC_DECLARE_DERIVED_EXCEPTION(ram_usage_exceeded
 

Variables

 sysio::chain::chain_exception
 
chain type exception sysio::chain::chain_type_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type sysio::chain::fork_database_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found sysio::chain::block_validate_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension sysio::chain::transaction_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit sysio::chain::action_validate_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big sysio::chain::database_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version sysio::chain::guard_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels sysio::chain::wasm_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels Error in WASM page memory Serialization Error Processing WASM binaryen exception sysio::chain::resource_exhausted_exception
 

Macro Definition Documentation

◆ CATCH_AND_CALL

#define CATCH_AND_CALL ( NEXT)
Value:
catch ( const fc::exception& err ) {\
NEXT(err.dynamic_copy_exception());\
} catch ( const std::exception& e ) {\
FC_LOG_MESSAGE( warn, "rethrow ${what}: ", ("what",e.what())),\
BOOST_CORE_TYPEID(e).name(),\
e.what() ) ;\
NEXT(fce.dynamic_copy_exception());\
} catch( ... ) {\
FC_LOG_MESSAGE(warn, "rethrow"),\
std::current_exception());\
NEXT(e.dynamic_copy_exception());\
}
std::string name
Used to generate a useful error report when an exception is thrown.
Definition exception.hpp:58
virtual std::shared_ptr< exception > dynamic_copy_exception() const
re-thrown whenever an unhandled exception is caught.Any exceptions thrown by 3rd party libraries that...
#define FC_LOG_MESSAGE(LOG_LEVEL, FORMAT,...)
A helper method for generating log messages.
@ std_exception_code
Definition exception.hpp:32

Capture all exceptions and pass to NEXT function

Definition at line 73 of file exceptions.hpp.

73#define CATCH_AND_CALL(NEXT)\
74 catch ( const fc::exception& err ) {\
75 NEXT(err.dynamic_copy_exception());\
76 } catch ( const std::exception& e ) {\
77 fc::exception fce( \
78 FC_LOG_MESSAGE( warn, "rethrow ${what}: ", ("what",e.what())),\
79 fc::std_exception_code,\
80 BOOST_CORE_TYPEID(e).name(),\
81 e.what() ) ;\
82 NEXT(fce.dynamic_copy_exception());\
83 } catch( ... ) {\
84 fc::unhandled_exception e(\
85 FC_LOG_MESSAGE(warn, "rethrow"),\
86 std::current_exception());\
87 NEXT(e.dynamic_copy_exception());\
88 }

◆ FC_DECLARE_DERIVED_EXCEPTION_WITH_ERROR_CODE

#define FC_DECLARE_DERIVED_EXCEPTION_WITH_ERROR_CODE ( TYPE,
BASE,
CODE,
WHAT )

Definition at line 95 of file exceptions.hpp.

95#define FC_DECLARE_DERIVED_EXCEPTION_WITH_ERROR_CODE( TYPE, BASE, CODE, WHAT ) \
96 class TYPE : public BASE \
97 { \
98 public: \
99 enum code_enum { \
100 code_value = CODE, \
101 }; \
102 explicit TYPE( int64_t code, const std::string& name_value, const std::string& what_value ) \
103 :BASE( code, name_value, what_value ){} \
104 explicit TYPE( fc::log_message&& m, int64_t code, const std::string& name_value, const std::string& what_value ) \
105 :BASE( std::move(m), code, name_value, what_value ){} \
106 explicit TYPE( fc::log_messages&& m, int64_t code, const std::string& name_value, const std::string& what_value )\
107 :BASE( std::move(m), code, name_value, what_value ){}\
108 explicit TYPE( const fc::log_messages& m, int64_t code, const std::string& name_value, const std::string& what_value )\
109 :BASE( m, code, name_value, what_value ){}\
110 TYPE( const std::string& what_value, const fc::log_messages& m ) \
111 :BASE( m, CODE, BOOST_PP_STRINGIZE(TYPE), what_value ){} \
112 TYPE( fc::log_message&& m ) \
113 :BASE( fc::move(m), CODE, BOOST_PP_STRINGIZE(TYPE), WHAT ){}\
114 TYPE( fc::log_messages msgs ) \
115 :BASE( fc::move( msgs ), CODE, BOOST_PP_STRINGIZE(TYPE), WHAT ) {} \
116 TYPE( const TYPE& c ) \
117 :BASE(c),error_code(c.error_code) {} \
118 TYPE( const BASE& c ) \
119 :BASE(c){} \
120 TYPE():BASE(CODE, BOOST_PP_STRINGIZE(TYPE), WHAT){}\
121 \
122 virtual std::shared_ptr<fc::exception> dynamic_copy_exception()const\
123 { return std::make_shared<TYPE>( *this ); } \
124 virtual NO_RETURN void dynamic_rethrow_exception()const \
125 { if( code() == CODE ) throw *this;\
126 else fc::exception::dynamic_rethrow_exception(); \
127 } \
128 std::optional<uint64_t> error_code; \
129 };

◆ SYS_ASSERT

#define SYS_ASSERT ( expr,
exc_type,
FORMAT,
... )
Value:
FC_MULTILINE_MACRO_BEGIN \
if( !(expr) ) \
FC_THROW_EXCEPTION( exc_type, FORMAT, __VA_ARGS__ ); \
#define FC_MULTILINE_MACRO_END
Definition logger.hpp:74

Definition at line 7 of file exceptions.hpp.

7#define SYS_ASSERT( expr, exc_type, FORMAT, ... ) \
8 FC_MULTILINE_MACRO_BEGIN \
9 if( !(expr) ) \
10 FC_THROW_EXCEPTION( exc_type, FORMAT, __VA_ARGS__ ); \
11 FC_MULTILINE_MACRO_END

◆ SYS_CAPTURE_AND_RETHROW

#define SYS_CAPTURE_AND_RETHROW ( exception_type,
... )
Value:
catch( const std::bad_alloc& ) {\
throw;\
} catch( const boost::interprocess::bad_alloc& ) {\
throw;\
} catch (sysio::chain::chain_exception& e) { \
FC_RETHROW_EXCEPTION( e, warn, "", FC_FORMAT_ARG_PARAMS(__VA_ARGS__) ); \
} catch (fc::exception& e) { \
exception_type new_exception(e.get_log()); \
throw new_exception; \
} catch( const std::exception& e ) { \
exception_type fce( \
FC_LOG_MESSAGE( warn, "${what}: ",FC_FORMAT_ARG_PARAMS(__VA_ARGS__)("what",e.what())), \
BOOST_CORE_TYPEID(decltype(e)).name(), \
e.what() ) ; throw fce;\
} catch( ... ) { \
FC_LOG_MESSAGE( warn, "",FC_FORMAT_ARG_PARAMS(__VA_ARGS__)), \
std::current_exception() ); \
}
const log_messages & get_log() const
#define FC_FORMAT_ARG_PARAMS(...)
Definition logger.hpp:155

Macro inspired from FC_CAPTURE_AND_RETHROW The main difference here is that if the exception caught isn't of type "sysio::chain::chain_exception" This macro will rethrow the exception as the specified "exception_type"

Definition at line 48 of file exceptions.hpp.

48#define SYS_CAPTURE_AND_RETHROW( exception_type, ... ) \
49 catch( const std::bad_alloc& ) {\
50 throw;\
51 } catch( const boost::interprocess::bad_alloc& ) {\
52 throw;\
53 } catch (sysio::chain::chain_exception& e) { \
54 FC_RETHROW_EXCEPTION( e, warn, "", FC_FORMAT_ARG_PARAMS(__VA_ARGS__) ); \
55 } catch (fc::exception& e) { \
56 exception_type new_exception(e.get_log()); \
57 throw new_exception; \
58 } catch( const std::exception& e ) { \
59 exception_type fce( \
60 FC_LOG_MESSAGE( warn, "${what}: ",FC_FORMAT_ARG_PARAMS(__VA_ARGS__)("what",e.what())), \
61 fc::std_exception_code,\
62 BOOST_CORE_TYPEID(decltype(e)).name(), \
63 e.what() ) ; throw fce;\
64 } catch( ... ) { \
65 throw fc::unhandled_exception( \
66 FC_LOG_MESSAGE( warn, "",FC_FORMAT_ARG_PARAMS(__VA_ARGS__)), \
67 std::current_exception() ); \
68 }

◆ SYS_RECODE_EXC

#define SYS_RECODE_EXC ( cause_type,
effect_type )
Value:
catch( const cause_type& e ) \
{ throw( effect_type( e.what(), e.get_log() ) ); }

Definition at line 90 of file exceptions.hpp.

90#define SYS_RECODE_EXC( cause_type, effect_type ) \
91 catch( const cause_type& e ) \
92 { throw( effect_type( e.what(), e.get_log() ) ); }

◆ SYS_RETHROW_EXCEPTIONS

#define SYS_RETHROW_EXCEPTIONS ( exception_type,
FORMAT,
... )
Value:
catch( const std::bad_alloc& ) {\
throw;\
} catch( const boost::interprocess::bad_alloc& ) {\
throw;\
} catch (sysio::chain::chain_exception& e) { \
FC_RETHROW_EXCEPTION( e, warn, FORMAT, __VA_ARGS__ ); \
} catch (fc::exception& e) { \
exception_type new_exception(FC_LOG_MESSAGE( warn, FORMAT, __VA_ARGS__ )); \
for (const auto& log: e.get_log()) { \
new_exception.append_log(log); \
} \
throw new_exception; \
} catch( const std::exception& e ) { \
exception_type fce(FC_LOG_MESSAGE( warn, FORMAT" (${what})" ,__VA_ARGS__("what",e.what()))); \
throw fce;\
} catch( ... ) { \
FC_LOG_MESSAGE( warn, FORMAT,__VA_ARGS__), \
std::current_exception() ); \
}

Macro inspired from FC_RETHROW_EXCEPTIONS The main difference here is that if the exception caught isn't of type "sysio::chain::chain_exception" This macro will rethrow the exception as the specified "exception_type"

Definition at line 21 of file exceptions.hpp.

21#define SYS_RETHROW_EXCEPTIONS(exception_type, FORMAT, ... ) \
22 catch( const std::bad_alloc& ) {\
23 throw;\
24 } catch( const boost::interprocess::bad_alloc& ) {\
25 throw;\
26 } catch (sysio::chain::chain_exception& e) { \
27 FC_RETHROW_EXCEPTION( e, warn, FORMAT, __VA_ARGS__ ); \
28 } catch (fc::exception& e) { \
29 exception_type new_exception(FC_LOG_MESSAGE( warn, FORMAT, __VA_ARGS__ )); \
30 for (const auto& log: e.get_log()) { \
31 new_exception.append_log(log); \
32 } \
33 throw new_exception; \
34 } catch( const std::exception& e ) { \
35 exception_type fce(FC_LOG_MESSAGE( warn, FORMAT" (${what})" ,__VA_ARGS__("what",e.what()))); \
36 throw fce;\
37 } catch( ... ) { \
38 throw fc::unhandled_exception( \
39 FC_LOG_MESSAGE( warn, FORMAT,__VA_ARGS__), \
40 std::current_exception() ); \
41 }

◆ SYS_THROW

#define SYS_THROW ( exc_type,
FORMAT,
... )
Value:
throw exc_type( FC_LOG_MESSAGE( error, FORMAT, __VA_ARGS__ ) );

Definition at line 13 of file exceptions.hpp.

13#define SYS_THROW( exc_type, FORMAT, ... ) \
14 throw exc_type( FC_LOG_MESSAGE( error, FORMAT, __VA_ARGS__ ) );