# Problem with log message when using trap

**URL:** <https://forum.kx.com/t/problem-with-log-message-when-using-trap/13492>\
**Category:** Community Support\
**Tags:** imported, kdb-and-q\
**Created:** [November 10, 2021, 12:00am UTC](https://forum.kx.com/t/problem-with-log-message-when-using-trap/13492 "2021-11-10T00:00:00Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![ekallivrousis](https://avatars.discourse-cdn.com/v4/letter/e/ecd19e/32.png) [@ekallivrousis](https://forum.kx.com/u/ekallivrousis)\
**Post date:** [November 10, 2021, 12:00am UTC](https://forum.kx.com/t/problem-with-log-message-when-using-trap/13492/1 "2021-11-10T00:00:00Z")

</div>

[https://learninghub.kx.com/forums/topic/problem-with-log-message-when-using-trap](https://learninghub.kx.com/forums/topic/problem-with-log-message-when-using-trap)

```
closeHandle:{[h] 
    .util.logMsg["Closing handle"]; 
    update handle:0Ni from `.cfg.handles where handle=h; 
    @[hclose; h;.util.logError["Error closing handle: ",(string h)]]; 
}; 
logMsg:{[x] show string[.z.Z], "-" , x; }; 
logError:{ logMsg["ERROR: ",x]; :`error; };
```

For some reason the trap is printing error closing handle when infact its closing it. I only want it to print when it might have issue closing it. Am i missing something?

---

<div class="post-metadata">

**Author:** ![cillianreilly](https://avatars.discourse-cdn.com/v4/letter/c/7bcc69/32.png) [@cillianreilly](https://forum.kx.com/u/cillianreilly)\
**Post date:** [November 11, 2021, 12:00am UTC](https://forum.kx.com/t/problem-with-log-message-when-using-trap/13492/2 "2021-11-11T00:00:00Z")

</div>

The error thrown is passed as the first parameter to the function. [https://code.kx.com/q/ref/apply/#trap](https://code.kx.com/q/ref/apply/#trap"). To allow parameters, you need to have a function of rank 2 or greater, you can then create a projection of a rank 1 function by eliding the first parameter:

&nbsp;

```
q)logError:{-1"Error: ",x;} 
q)@[10+;`abc;{logError x,". Couldn't add 10 to ",string y}[;`abc]] 
Error: type. Couldn't add 10 to abc
```

&nbsp;

You can extend this to allow additional parameters to your error function by creating greater rank functions

---

<div class="post-metadata">

**Author:** ![jason\_fealy](https://avatars.discourse-cdn.com/v4/letter/j/d26b3c/32.png) [@jason\_fealy](https://forum.kx.com/u/jason_fealy)\
**Post date:** [November 10, 2021, 12:00am UTC](https://forum.kx.com/t/problem-with-log-message-when-using-trap/13492/3 "2021-11-10T00:00:00Z")

</div>

Hi, the trap itself needs to be a function otherwise it will be evaluated regardless of whether the application of your function (hclose) fails or not.  
[https://code.kx.com/q/ref/apply/#when-e-is-not-a-function](https://code.kx.com/q/ref/apply/#when-e-is-not-a-function")

```
q)logError:{-1"Error: ",x;} 
q)@[10+;10;logError"Can't add"] 
Error: Can't add 20 
q)@[10+;10;{logError"Can't add"}] 
20 
q)@[10+;`abc;{logError"Can't add"}] 
Error: Can't add
```

&nbsp;

---

<div class="post-metadata">

**Author:** ![ekallivrousis](https://avatars.discourse-cdn.com/v4/letter/e/ecd19e/32.png) [@ekallivrousis](https://forum.kx.com/u/ekallivrousis)\
**Post date:** [November 11, 2021, 12:00am UTC](https://forum.kx.com/t/problem-with-log-message-when-using-trap/13492/4 "2021-11-11T00:00:00Z")

</div>

This looks good but how can i pass a parameter to that function? doesnt seem to allow me to pass anything.
