# What kind of error?

**URL:** <https://swi-prolog.discourse.group/t/what-kind-of-error/6983>\
**Category:** General\
**Tags:** how-to\
**Created:** [November 20, 2023, 6:43am UTC](https://swi-prolog.discourse.group/t/what-kind-of-error/6983 "2023-11-20T06:43:54Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![heiheshang](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/heiheshang/32/4419_2.png) [@heiheshang](https://swi-prolog.discourse.group/u/heiheshang)\
**Post date:** [November 20, 2023, 6:43am UTC](https://swi-prolog.discourse.group/t/what-kind-of-error/6983/1 "2023-11-20T06:43:54Z")

</div>

```prolog
ERROR: Unknown error term: http_open_error(error(io_error(read,<stream>(0x2c6c500)),context(system:get_code/2,'Inappropriate ioctl for device')))

```

When http\_post the following error appears

---

<div class="post-metadata">

**Author:** ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)\
**Post date:** [November 20, 2023, 8:53am UTC](https://swi-prolog.discourse.group/t/what-kind-of-error/6983/2 "2023-11-20T08:53:14Z")

</div>

Hard to say. Looks like a misleading error. To say something meaningful I’d at least need version, OS, HTTP(S), and ideally a place to connect to that produces this. Considering it relates to get\_code/2, I’d suspect an SSL error that is not correctly propagated.

---

<div class="post-metadata">

**Author:** ![heiheshang](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/heiheshang/32/4419_2.png) [@heiheshang](https://swi-prolog.discourse.group/u/heiheshang)\
**Post date:** [November 20, 2023, 9:13am UTC](https://swi-prolog.discourse.group/t/what-kind-of-error/6983/3 "2023-11-20T09:13:28Z")

</div>

I would like to understand how to properly handle the error?

```prolog
catch(
        http_post(Url, json([]), Reply, [status_code(StatusCode), request_header('Authorization'=Auth)]),
        E,
        throw(error(http_open_error(E),_))
    ),

```

I don’t really care about the error, I’d just like to continue further

---

<div class="post-metadata">

**Author:** ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)\
**Post date:** [November 20, 2023, 9:46am UTC](https://swi-prolog.discourse.group/t/what-kind-of-error/6983/4 "2023-11-20T09:46:53Z")

</div>

Using catch/3 is fine I’d say, but why do you rethrow the error?

---

<div class="post-metadata">

**Author:** ![heiheshang](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/heiheshang/32/4419_2.png) [@heiheshang](https://swi-prolog.discourse.group/u/heiheshang)\
**Post date:** [November 20, 2023, 9:58am UTC](https://swi-prolog.discourse.group/t/what-kind-of-error/6983/5 "2023-11-20T09:58:28Z")

</div>

I thought I’d throw an exception and someone would handle it

---

<div class="post-metadata">

**Author:** ![anon419083](https://avatars.discourse-cdn.com/v4/letter/a/53a042/32.png) [@anon419083](https://swi-prolog.discourse.group/u/anon419083)\
**Post date:** [November 20, 2023, 11:27am UTC](https://swi-prolog.discourse.group/t/what-kind-of-error/6983/6 "2023-11-20T11:27:38Z")

</div>

Someone meaning Jan? Using an existentially quantified expression in place of a definite description? Or a proper name to be more accurate 😅 (Excuse me for the philosophical lexicon…)
