-
-
Notifications
You must be signed in to change notification settings - Fork 8.7k
error handling
github-actions[bot] edited this page Jun 11, 2026
·
2 revisions
import ccxt from '../../js/ccxt.js';
const verbose = process.argv.includes ('--verbose');
//-----------------------------------------------------------------------------
const printSupportedExchanges = () => console.log ('Supported exchanges:', ccxt.exchanges.join (', '))
const printUsage = () => {
console.log ('Usage: node', process.argv[1], 'id'.green)
printSupportedExchanges ()
}
const run = async (id) => {
// check if the exchange is supported by ccxt
const exchangeFound = ccxt.exchanges.indexOf (id) > -1
if (exchangeFound) {
console.log ('Instantiating', id, 'exchange')
// instantiate the exchange by id
const exchange = new ccxt[id] ({ verbose })
// try to load markets and catch the errors if any
try {
await exchange.loadMarkets ()
} catch (e) {
if (e instanceof ccxt.NetworkError) {
console.log (exchange.id, 'loadMarkets failed due to a network error:', e.message)
} else if (e instanceof ccxt.ExchangeError) {
console.log (exchange.id, 'loadMarkets failed due to exchange error:', e.message)
} else {
console.log (exchange.id, 'loadMarkets failed with:', e.message)
}
// rethrow the error "higher up" the call chain
throw e
}
// try to fetch a ticker and catch the errors if any
try {
const symbol = 'ETH/BTC'
const response = await exchange.fetchTicker (symbol)
console.log (response)
} catch (e) {
if (e instanceof ccxt.NetworkError) {
console.log (exchange.id, 'fetchTicker failed due to a network error:', e.message)
} else if (e instanceof ccxt.ExchangeError) {
console.log (exchange.id, 'fetchTicker failed due to exchange error:', e.message)
} else {
console.log (exchange.id, 'fetchTicker failed with:', e.message)
}
// rethrow the error "higher up" the call chain
throw e
}
} else {
console.log ('Exchange', id, 'not found')
printSupportedExchanges ()
}
}
;(async function main () {
if (process.argv.length > 2) {
let id = process.argv[2]
await run (id)
} else {
printUsage ()
}
process.exit ()
}) ()(If the page is not being rendered for you, you can refer to the mirror at https://docs.ccxt.com/)
- Install
- Examples
- Manual
- CCXT Pro
- Contributing
- Supported Exchanges
- Exchanges By Country
- API Spec By Method
- FAQ
- Changelog
- Awesome
- API Spec by Exchange
- fetchCurrencies
- alpaca
- apex
- ascendex
- aster
- backpack
- bigone
- binance
- bingx
- bit2c
- bitbank
- bitbns
- bitfinex
- bitflyer
- bitget
- bithumb
- bitmart
- bitmex
- bitopro
- bitrue
- bitso
- bitstamp
- bitteam
- bittrade
- bitvavo
- blockchaincom
- blofin
- btcbox
- btcmarkets
- btcturk
- bullish
- bybit
- bydfi
- cex
- coinbase
- coinbaseexchange
- coinbaseinternational
- coincheck
- coinex
- coinmate
- coinmetro
- coinone
- coinsph
- coinspot
- cryptocom
- cryptomus
- deepcoin
- delta
- deribit
- derive
- digifinex
- dydx
- exmo
- extended
- foxbit
- gate
- gemini
- grvt
- hashkey
- hibachi
- hitbtc
- hollaex
- htx
- hyperliquid
- independentreserve
- indodax
- kraken
- krakenfutures
- kucoin
- fetchBidsAsks
- latoken
- lbank
- lighter
- luno
- mercado
- mexc
- modetrade
- ndax
- novadax
- okx
- onetrading
- p2b
- pacifica
- paradex
- paymium
- phemex
- poloniex
- tokocrypto
- toobit
- upbit
- weex
- whitebit
- woo
- woofipro
- xt
- zaif
- fetchStatus